Von SubSubroutine zurück in Subroutine

OP #1944784
Servus,

bräuhcte bitte kurz ein bischen Hilfestellung.

Es geht um folgenden Code
1
.include "m48def.inc"
2
 
3
.def temp = r16
4
.def cnt = r17
5
 
6
.org 0x0000
7
        rjmp    main
8
.org OVF0addr
9
        rjmp    t0_ovf
10
 
11
main:
12
        ; Stackpointer initialisieren
13
        ldi     temp, HIGH(RAMEND)
14
        out     SPH, temp
15
        ldi     temp, LOW(RAMEND)     
16
        out     SPL, temp
17

18
        ldi temp, (1<<COM0A0) | (1<<WGM01)
19
        out TCCR0A, temp
20

21
;        ldi temp, (1<<CS01) | (1<<CS00)
22
        ldi temp, (1<<CS00)
23
        out TCCR0B, temp
24

25
        ldi temp, 83
26
        out OCR0A, temp
27

28
        ldi temp, (1<<OCIE0A)
29
        sts TIMSK0, temp
30

31
        sei
32

33
loop:   rjmp    loop
34

35
t0_ovf:
36
        tst cnt
37
        breq langerloop
38
        inc cnt
39
        reti
40

41
langerloop:
42
        ldi temp, 111
43
        out OCR0A, temp
44
        reti

Hier soll nach dem Ausführen von langerloop zurück in t0_ovf zu der 
zeile inc cnt gesprungen werden und nicht (wie es aktuell tut) zurück 
ins Hauptprogramm. Welcher Befehl is dafür nötig?

Danke für Hilfe!!!
#1944791
Daniel Steffen schrieb:
> t0_ovf:
>         tst cnt
>         breq langerloop
>         inc cnt
>         reti
>
> langerloop:
>         ldi temp, 111
>         out OCR0A, temp
>         reti

Wozu überhaupt langerloop als Funktion? Wird doch eh nur 1x aufgerufen 
und kann gleich integriert werden:
1
t0_ovf:
2
  tst cnt
3
  brne noloop
4
    ldi temp, 111
5
    out OCR0A, temp
6
  noloop:
7
  inc cnt
8
reti

Grüße, Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.