اطلاعیه

Collapse
No announcement yet.

مشکل عجیب با اسمبلی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل عجیب با اسمبلی

    سلام بع تمام دوستان
    من به یه مشکل عجیب و غزیر منتظره برخوردم :angry:
    من برای اسمبلی از AVR Studio استفاده میکنم :nerd: یه برنامه دارم مینویسم که اولش به این مشکل برخوردم
    مشکل اینه که نمیتونم توی رجیستر TCCR1B مقداری رو قرار بدم :angry: دقیقا من برای این کار از دستورات زیر استفاده میکنم
    کد:
    ldi r16,(1<<CS10 | 1<<WGM12)
    sts tccr1b,r16
    مقدار 9 توی رجیستر R16 قرار میگیره ولی نمیره توی TCCR1B من که پاک گیج شدم نمیدونم مشکل از کجاست همین مشکلات رو با رجیستر های TIMSK , ocr1ah , ... دارم
    میکروی مورد نظر هم مگا 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

    #2
    پاسخ : مشکل عجیب با اسمبلی

    برای مقداردهی به رجیسترهای کنترل کننده سخت افزار در mega16 باید از دستورOUT استفاده کنید. در شماره هایی مانند mega64 هم که تعداد این رجیسترها از 64 عدد بیشتر است، برای 64 آدرس اول از OUT و برای آدرس های بزرگتر از STS استفاده می شود.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه

    لطفا صبر کنید...
    X