.include "tn2313def.inc" .def temp = r16 //Register für alles Kann jederzeit verwendet werden .def bout = r17 //Register für Ausgang PORTB .def dout = r18 //Register für Ausgang PORTD .def divl = r19 //Register zum Speichern der Zeit .def divh = r20 //Register zum Speichern der Zeit .def matchL = r21 //Register zum Vergleichen von MatchA und Clock .def matchH = r22 //ehemals divo; jetzt matchH //Register für Divisor der Division Kann außerhalb der Division verwendet werden .def xbit = r23 //Register zum 8Bit dividieren Kann außerhalb der Division verwendet werden .def stand = r24 //Register zur Ausgabe des Idle-Modes .def exti = r25 //Register für den externen Interrupt //-------------------- //Interruptaktivierung //-------------------- .org 0x000 //Reset rjmp main .org 0x0004 //Clock-Match-A-Interrupt rjmp matcha .org 0x0005 //Clock-Overflow-Interrupt rjmp clock .org 0x000B //External Interrupt (PINB,7) rjmp extpin main: #include "Initialisierung.asm" sei //Interrupts aktiviert //------------- //Hauptschleife //------------- loop: rjmp loop //------------------------------------- //CLOCK - Interruptschleife - Stand-Mode //------------------------------------- clock: #include "ClockOverflow_Interrupt.asm" reti //jump back to main; i = activate interrupts //------------------------------- //ExternalPin - Interruptschleife //------------------------------- extpin: #include "ExternalPin_Interrupt.asm" reti //jump back to main; i = activate interrupts //----------------------------- //Clock-Match-Interruptschleife //----------------------------- matcha: #include "ClockMatch_Interrupt.asm" reti //jump back to main; i = activate interrupts