پاسخ : برنامه نویسی به زبان اسمبلی
در میکروکنترلر مذکور در هر ثانیه بیش از صدهزار وقفه اتفاق می افتد که با فرض کلاک 16 مگاهرتز و وجود حلقه اصلی، برای پاسخگویی به هر وقفه کمتر از 160 سیکل زمان وجود دارد که حتی برنامه نویسی اسمبلی به هر شکلی هم جوابگو نیست و برنامه باید بصورت کاملا بهینه و با استفاده از روش ها و دستوراتی که کمترین زمان را صرف می کنند، نوشته شود.
برای تبدیل کد گری به باینری:
1- بیت با بالاترین ارزش در کد گری به بیت با بالاترین ارزش در کد باینری منتقل می شود.
2- از سمت چپ به راست و ارزش بالاتر به پائین تر بیت شماره n باینری برابر است با حاصل XOR بیت شماره n در کد گری با بیت شماره n+1 در عدد باینری.
مثلا اگر بخواهیم 1010 گری را به باینری تبدیل کنیم، در مرحله اول 1xxx برای باینری بدست می آید. سپس 0 بعدی در 1010 را با 1 واقع در 1xxx با هم XOR می کنیم که حاصل 1 می شود. پس عدد باینری تا مرحله 11xx تبدیل می شود. سپس 1 واقع در 1010 را با 1 واقع در 11xx با هم XOR می کنیم تا 110x بدست آید. مرحله آخر هم به همین ترتیب به نتیجه 1100 برای عدد باینری منجر می شود.
نوشته اصلی توسط زوار
نوشته اصلی توسط crystalgirl
1- بیت با بالاترین ارزش در کد گری به بیت با بالاترین ارزش در کد باینری منتقل می شود.
2- از سمت چپ به راست و ارزش بالاتر به پائین تر بیت شماره n باینری برابر است با حاصل XOR بیت شماره n در کد گری با بیت شماره n+1 در عدد باینری.
مثلا اگر بخواهیم 1010 گری را به باینری تبدیل کنیم، در مرحله اول 1xxx برای باینری بدست می آید. سپس 0 بعدی در 1010 را با 1 واقع در 1xxx با هم XOR می کنیم که حاصل 1 می شود. پس عدد باینری تا مرحله 11xx تبدیل می شود. سپس 1 واقع در 1010 را با 1 واقع در 11xx با هم XOR می کنیم تا 110x بدست آید. مرحله آخر هم به همین ترتیب به نتیجه 1100 برای عدد باینری منجر می شود.
دیدگاه