Welcher befehl ist zum Springen da?

OP #1029087
Lesenswert?

Hallo,

blöd ausgedückt aber hier meine Frage.

Ich möchte mit mehreren nop Zeitdifferenzen ausgleichen.

Im Timer1 Compare IR lese ich die Register ICR1H und L und TCNT1L und H 
aus
die Beiden subtrahiere ich dann die Differenz möchte ich dann zum PC 
addieren und dann zu einer Reihe nop springen.

Wie heist der Sprungbefehl?

PC + Differenz = Sprungadresse

(welcher Befehl und wie einlesen welche Register müssen geladen werden)
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
OP #1029137
Lesenswert?

Hallo,

so inetwa?


                          in    templ1,TCNT1L
                          in    tempH1,TCNT1H

                          in    templ,ICR1L
                          in    tempH,ICR1H

                    sub   templ1,templ
                    sbc   temph1,temph
                          ldi   Templ,low(PC)
                    ldi   Temph,high(PC)
                    add   templ1,templ
                    adc   temph1,temph
        mov   ZH,tempH1
        mov   ZL,tempL1
        ijmp
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop

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