كود:
char output[4]={65,66,67};
void main(){
TRISB.F0 = 0 ;
UART1_Init(9600);
Delay_ms(100);
while (1) {
if (UART1_Data_Ready() == 1) {
UART1_Read_Text(output, "ABC", 10);
}
if(output[0] == 'A' && output[1] == 'B' && output[2]== 'C') PORTB.F0 = 1 ;
else PORTB.F0 = 0 ;
}
}
حاولت ان اجرب ان استلم ABC ولكن ما اشتغل ما الخطا بالكود
|
أولا انت تستلم من أين؟؟
هذا يجب أن يكون كود ارسال على ميكرو و كود استقبال على ميكرو آخر و تربط مخرج المرسل بمدخل المستقبل أو تستخدم أحد برامج الحاسب لكى يستخدم كمرسل أو كمستقبل
الكود الذى كتبته يرسل فى سطر للخارج و يستقبل من مكان غير متصل بالميكرو
فكيف يقرأ؟؟
وبالنسبه للمصفوفه كيف اضع هذا الارقام
161 000 021 127 074 129 127 129 000
A1 00 15 7F 4A 81 7F 81 00
|
هكذا الارقام العشريه
كود:
const char msg1[] = {161, 0, 21, 127,74,129,127,129 '\0'};
وهكذا بالهكسا
const char msg1[] = {0xA1, 0, 0x15, 0x7F,0x4A,0x81,0x7F,0x81, '\0'};
لاحظ أن الرقم الأخير '/0' يمكنك استبداله بصفر فقط
إما بالطريقة السابقة التى شرحتها فى رد سابق أو
فى ملف المساعدة ستجد وظيفة
void UART_Read_Text(char *Output, char *Delimiter, char Attempts);
قد تساعدك
حاولت اضع في المصفوفه بعض الارقام واحولها هكس ديسمل ولكن الميكرو لم يقبل بعضها
مثال 079 اعطاني خطا
هل من مثال حتى نتعلم جميعا
|
لهذا كررت لك كثيرا حاول أن تتعلم من كورس لتعلم كيف تدخل الأرقام
انت لا تحول لهكس ولا شيء
فى الكود السابق وضعت لك نفس التعريف مرة باستخدام ارقام عشرية و مرة هكسا و سبق أن قلت لك انت تستخدم النظام الأسهل لك فى الفهم فحين تتعامل مع منفذ قد يكون الأسهل الثنائى حتى تربط كل بت بالطرف المناظر و حين تتعامل مع قيم فالعشرى أكثر فهما و قبولا أما فى التحكمات فقد يكون أيها بما فى ذلك الهكسا اقرب للفهم كأن تقول FF تعنى الكل آحاد خلاف 255 قد تشك هل البت صفر = 1 أم صفر وهكذا
أما مثال 079 الذى أعطى خطأ فمرة أخرى إقرا لتعلم كيف تدخل الأرقام
بعض المترجمات ستعتبر هذا الرقم عشرى و يساوى 79 و البعض مثل ميكرو سى يجد صفر فى الأول فيعتبر أنه نظام آخر غير العشرى ولا يجد حرف بعد الصفر الأول ليحدد له أى نظام فيعطى لك رسالة خطأ ولو أعدت كتابته 79 سيقبله على أنه عشري = 79 ولو أضفت x بعد الصفر 0x79 سيعتبره هكسا أى = 121 عشرى
كيفية ادخال الارقام فى ملف المساعدة لو لا تريد كورس