Danke für die vielen und raschen Antworten!
RJMP und RETI funktionieren in der Vektortabelle bei Tiny13 und Mega8 einwandfrei.
Arbeitet der Mega16 anders???
Zudem sollte das Problem mit dem Adressbereich zumindest im obigen Testprogramm kein Problem sein.
Weiters motzt der Compiler ja nicht, was er bei einem "BRANCH" sehr wohl tut/getan hat (in meinem Heizungsprogramm).


SEI setze ich deshalb vor dem Starten der Timer, weil ich sie zu unterschiedlichen Zeiten bzw. Bedingungen starte und bei Overflow wieder stoppe.
Also muss SEI generell vorher gesetzt sein. Macht bei T13 + M8 auch keine Probleme.


Zitat Zitat von wkrug Beitrag anzeigen
Denk auch dran die JTAGEN Fuse zu deaktivieren, sonst gehen ein paar Ports von PORT C nicht richtig.
Was funktioniert da dann nicht richtig?
Wie muss ich die setzen?
Ich hab bislang geflissentlich die Finger von Fuses gelassen - außer Takt.


Zitat Zitat von wkrug Beitrag anzeigen
So etwas wie eine Heizungssteuerung in Assembler zu programmieren halt ich schon für etwas mutig.
Ich würde da eher ne Hochsprache nehmen wie z.B. "C" oder BASCOM, aber das musst Du selber entscheiden.
Ich hab vor ein paar Jahren mit Assembler begonnen und mich damit bisher gut zurecht gefunden. Wenn man vorher einen guten Programmablauf (programflow) ausarbeitet und skizziert, dann geht das Programmieren auch ganz flott von der Hand.


Zitat Zitat von wkrug Beitrag anzeigen
Guck noch mal genau ins Datenblatt, da steht nicht RJMP zum anspringen der Interrupts sondern JMP.
Sollte im Prinzip egal sein welcher Befehl in der Vektortabelle an der Ansprungadresse steht.
Denn bei einem Interrupt (TOVF) springt AVR gar nicht dort hin!!!!!!!!
DAS IST MEIN PROBLEM!!