پاسخ : شیفت 16 بیت ذر کدویژن
با تبریک سال نو و آرزوی موفقیت و سلامت برای شما، مشکل اصلی در همان دست بردن کدویژن در استانداردهای C و اضافه کردن امثال PORTA.0 به امکان برنامه نویسی است که منجر به این مسائل می شود. با بررسی کدهای معادل اسمبلی مشخص می شود که در عمل کدویژن برای چنین عبارتی به عنوان بیتی از یک بایت برخورد می کند و ماهیت true و false را برای عبارت مورد سنجش و نسبت دادن آن به پین مورد نظر قائل نمی شود. این رفتار را قبل از نوشتن پست های قبل در سیمولاتور AVRStudio بررسی کردم و جالب است که با قرار دادن optimization در سطوح مختلف، کدهای متفاوتی هم تولید می شوند، ولی ظاهرا در کدویژن تا زمانی که عبارت مورد سنجش در محدوده یک بایت باشد، به پین مقدار یک را نسبت می دهد. اما بیت های واقع در مکان هشتم به بعد به نتیجه صفر منجر می شوند.
نوشته اصلی توسط reza_agha
دیدگاه