پاسخ : سوالات اسمبلی
توی انجمن یکی از دوستان برنامه ای می خواست که با فشردن یک کلید برنامه avr متوقف بشه و avr از کار بیافته و با فشردن دوباره همون کلید avr شروع به کار کنه
که من برنامه زیر رو برای اینکار نوشتم که با اینتراپت صفر و حالت power down کار میکنه و با حذف نویز ورودی میکروسوییچ به خوبی کار میکنه
اما مشکل اینجاست که در برنامه زیر اگر بجای عبارت inc r18 (در زیر برنامه int0_isr) عبارت com r18 رو قرار بدیم در پروتئوس مدار جواب میده اما در عمل با فشردن میکروسوییچ اعداد نامعتبر روی پورت c نمایش داده میشه من برای تست مقدار اولیه 1 رو به r18 دادم و دیدم که مشکل بر طرف شد پس میشه نتیجه گرفت که مشکل به صفر شدن r18 برمیگرده و مربوط به رجیستر sreg میشه
اما چرا باعث به هم ریختن مقادیر پورت c میشه ؟
برنامه :
فایل های asm و hex و پروتئوس برنامه :
http://www.mediafire.com/download/wzyozqbal29t98t/sleep.zip
توی انجمن یکی از دوستان برنامه ای می خواست که با فشردن یک کلید برنامه avr متوقف بشه و avr از کار بیافته و با فشردن دوباره همون کلید avr شروع به کار کنه
که من برنامه زیر رو برای اینکار نوشتم که با اینتراپت صفر و حالت power down کار میکنه و با حذف نویز ورودی میکروسوییچ به خوبی کار میکنه
اما مشکل اینجاست که در برنامه زیر اگر بجای عبارت inc r18 (در زیر برنامه int0_isr) عبارت com r18 رو قرار بدیم در پروتئوس مدار جواب میده اما در عمل با فشردن میکروسوییچ اعداد نامعتبر روی پورت c نمایش داده میشه من برای تست مقدار اولیه 1 رو به r18 دادم و دیدم که مشکل بر طرف شد پس میشه نتیجه گرفت که مشکل به صفر شدن r18 برمیگرده و مربوط به رجیستر sreg میشه
اما چرا باعث به هم ریختن مقادیر پورت c میشه ؟
برنامه :
کد:
.include "m32adef.inc" .org 0000 jmp main .org 0002 jmp int0_isr main: ldi r16,high(ramend) out sph,r16 ldi r16,low(ramend) out spl,r16 clr r17 clr r18 ser r16 out ddrc,r16 cbi ddrd,2 sbi portd,2 sei in r16,gicr ori r16,$40 out gicr,r16 in r16,mcucr ori r16,$a0 out mcucr,r16 main1: inc r17 out portc,r17 call delay sbrs r18,0 rjmp m0 sleep m0:rjmp main1 delay: ldi r20,250 l3:ldi r21,200 l2:ldi r22,30 l1:nop dec r22 brne l1 dec r21 brne l2 dec r20 brne l3 ret int0_isr: inc r18 reti
http://www.mediafire.com/download/wzyozqbal29t98t/sleep.zip
دیدگاه