TImer in Assembler Programmieren

OP #1943337
Lesenswert?

Hallo zusammen, ich will Timer lernen, aber weiße noch nicht wie man das
programmieren kann, also ich habe ein Programme geschrieben und weiße
nicht ob es gut laufen kann.

Also was sollt das Programm Machen
Der Timer arbeitet in Up-Modus
Der Timer wird beim Systemstart mit einer Zeit von 1,0 Sekunden
initialisiert werden.
P1.0  Startet den Timer
P1.1  Erhöht den Takt um 1s
P1.2  Verringert den Takt um 1s,

ich habe versucht so zu programmieren, kann mir jemand sagen ob es gut
programmiert ist??

TIMER_A_Init
             MOV #TACLR,&TACTL   ; S e t z t Timer A B i t s z u r ü c k
             MOV #TASSEL_1+ID_4+MC_1+TAIE ,&TACTL ; T a k t q u ell
ACLK

Start Timer  MOV #0x2000 ,R5  ; Entspricht 1s
             MOV #R5 ,&TACCR0  ; Entspricht 1s
ENDE TIMER_A_Init


P1_ISR
       BIT.B #BIT0 ,& P1IFG       ;  I n t e r r u p t von P1.0
ausgelöst?
       JNZ  ja weiter bei Start Timer
LOOP2  BIT.B #BIT1 ,& P1IFG;I n t e r r u p t von  P1.1 a u s g e l ö s
t ?
       JZ LOOP1, Nein Weiter bei LOOP1
       ADD R5, R5
       MOV #R5 ,&TACCR0
       BIC.B #BIT1 ,& P1IFG       ; L ö s c h e P1.1 im F l a g −
       RETI


LOOP1  BIT.B #BIT2 ,& P1IFG; I n t e r r u p t von P1.2 a u s g e l ö s
t ?
       JZ LOOP2
       SUB R5, R5
       MOV #R5 ,&TACCR0
       BIC.B #BIT2 ,& P1IFG       ; L ö s c h e P1.2 im F l a g −
       RETI

ENDE P1_ISR

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren