Ich habe eine return Funktion eingebaut.
Trotzdem funzt es nicht.
LED leuchtet nicht und lt.Messgerät fließt auch kein Strom.
Der tiny ist ok und auch die Schaltung funzt.
Also kann es doch nur am Programm liegen, oder ?
Ich weiß es jetzt gerade nicht so genau (also schlagt mich nicht):
Adresse 0x0000 ist doch der Sprungvektor für Reset. Gehört da ein jmp
hinein oder nicht? Wenn nein, fehlt die passende Angabe in den Vektoren
(also in Deinem Fall ein "jmp Main".
Mit "Return Funktion" meinst Du doch "ret" und keine zusätzliche
Funktion.
Netzwanze schrieb:
> Ich weiß es jetzt gerade nicht so genau (also schlagt mich nicht):>> Adresse 0x0000 ist doch der Sprungvektor für Reset. Gehört da ein jmp> hinein oder nicht? Wenn nein, fehlt die passende Angabe in den Vektoren> (also in Deinem Fall ein "jmp Main".>> Mit "Return Funktion" meinst Du doch "ret" und keine zusätzliche> Funktion.
Solange keine anderen Interrupt Vektoren im Spiel sind, ist das
belanglos.
Ob der µC nach einem Reset als erstes auf einen rjmp stösst, oder ob
dort das Programm direkt losgeht, spielt keine Rolle.
Andreas schrieb:
> Du meinst "jmp main" zum Abschluß ?
Welcher Abschluss.
Zeig doch bitte das komplette Programm.
Du hast Änderungen gemacht und wir wissen nicht welche.
Andreas schrieb:
Dachte ichs mir doch.
> ; -----------------------------> ; warte 1 Zyklus:> nop> ; =============================>> jmp main
Nein.
Bei main ist dein Programmanfang. Wenn du nach main hüpfst beginnt das
Programm wieder von vorne. Und das bedeutet: alles wird initialisiert
und die Ports wieder auf 0 gestellt.
; -----------------------------
; warte 1 Zyklus:
nop
; =============================
ret
Mit rcall wird ein Unterprogramm aufgerufen. Zurück geht aus aus dem
Unterprogramm zur Stelle des Aufrufs mit einem ret
(Darf ich dir das AVR-Tutorial nahelegen?)
;****Time Delay Subroutine for LED flash*************
delay:
ldi coarse,5 ;triple nested FOR loop
cagain:
ldi medium,255 ;giving about 1/4 second
magain:
ldi fine,255 ;delay on 4 MHz clock
fagain:
dec fine
brne fagain
dec medium
brne magain
dec coarse
brne cagain
ret
Ich habe es jetzt mit "ret" probiert.Kein Erfolg.
Auch bei 1 hz. funzt es nicht.
Lt.Messgerät fließt auch kein Strom.
Tiny und Schaltung sind aber OK.
Es muss wohl am Programm liegen.
Ich vermute es könnte an den Aus- und Eingängen liegen.
Pbo und Pb3 sind Ausgänge.
Pb1 ist ein Taster.In diesem Fall aber wohl unbedeutend,oder ?
Zu meiner Zeit mußte man den Stack initialisieren, bevor man
Unterprogramme aufrufen wollte. Kann sein, dass der Prozessor mit einem
sinnvollen Wert hochfährt. Bitte prüfen.