جزاك الله خيرا أخي أحمد.
عندي سؤال آخر:
لو فرضنا أن المتغير temp_res يساوي
كود:
temp_res = ADC_Read(2) + 1024
فهذا يعني أن x تحتاج ل11 مخرج.
يعني سنستخدم أول ثلاثة مخارج من بورت C.
فهل يكون الكود هكذا:
كود:
PORTC = temp_res >> 8; // Send 3 most significant bits to RC2,RC1, RC0
لاحظ أنه نفس الكود العملي الذي ورد في نافذة المساعدة لبرنامج الميكرو سي حيث قلت
PORTC = temp_res >> 8;
وجزاكم الله خيرا.
|
أخي ماذا يعني x ؟
عموما ..
1/ بالنسبة لناتج هذه العملية :
temp_res = ADC_Read(2) + 1024
فهو طبعا سيكون عددا سعته 11 بت
2/ بالنسبة للكتابة :
PORTC = temp_res >> 8;
السبب أن ناتج عملية التحويل من أنالوج الى ديجتال كما تعلم هو عدد بسعة 10 بت
أرادوا إظهاره على المنفذ B
لكن منافذ البيك لا تتعدى 8 بت
لذلك أظهروا 8 بت على منفذ B والبتين الباقيين على طرفين من المنفذ C
واستخدموا لهذا الغرض خاصية الازاحة المعروفة في المنطق الالكتروني (كما في متكاملات مسجلات الازاحة TTL أو CMOS)
الازاحة المستخدمة هنا إزاحة لليمين ورمزها هو :
<<