سلام بع تمام دوستان
من به یه مشکل عجیب و غزیر منتظره برخوردم :angry:
من برای اسمبلی از AVR Studio استفاده میکنم :nerd: یه برنامه دارم مینویسم که اولش به این مشکل برخوردم
مشکل اینه که نمیتونم توی رجیستر TCCR1B مقداری رو قرار بدم :angry: دقیقا من برای این کار از دستورات زیر استفاده میکنم
مقدار 9 توی رجیستر R16 قرار میگیره ولی نمیره توی TCCR1B من که پاک گیج شدم نمیدونم مشکل از کجاست همین مشکلات رو با رجیستر های TIMSK , ocr1ah , ... دارم
میکروی مورد نظر هم مگا 16 است
اینم لیست برنامه
من به یه مشکل عجیب و غزیر منتظره برخوردم :angry:
من برای اسمبلی از AVR Studio استفاده میکنم :nerd: یه برنامه دارم مینویسم که اولش به این مشکل برخوردم
مشکل اینه که نمیتونم توی رجیستر TCCR1B مقداری رو قرار بدم :angry: دقیقا من برای این کار از دستورات زیر استفاده میکنم
کد:
ldi r16,(1<<CS10 | 1<<WGM12) sts tccr1b,r16
میکروی مورد نظر هم مگا 16 است
اینم لیست برنامه
کد:
.include "m16def.inc" .org 0 rjmp RESET RESET: ; **************************************************************************************** ; **** IO PORT A SETUP ; **************************************************************************************** sbi ddrb,0 ; HORIZONTAL SYNC PULSE sbi ddrb,1 ; VERTICAL SYNC PULSE sbi ddrb,2 ; TEST LED ; **************************************************************************************** ; **** STARTUP SEQUENCE ; **************************************************************************************** ; STACK POINTER ldi r16,low(ramend) out spl,r16 ldi r16,high(ramend) out sph,r16 ; SET TIMER1 TO SCLK WITH RESET ldi r16,(1<<CS10 | 1<<WGM12) sts tccr1b,r16 ; SET TIMER1 MATCH A INTERRUPT ldi r16,(1<<OCIE1A) sts timsk,r16 ; SET TIMER1 INTERRUPT TIME A VALUE ldi r16,high(636) sts ocr1ah,r16 ldi r16,low(636) sts ocr1al,r16
دیدگاه