Moin,Code:; Programmname: entprell ; Version: 0.1 ; Datum: 27.02.2007 ; Autor: Manuel Behrens ; Programmfunktion: .include "m8def.inc" .def temp = R16 ; Temporärer Speicher zum Beispiel zur Initialisierung .def anschlaege = R17 ; Speichert die Anschläge des Tasters 0 an Port D .def eingang = R18 ; Port D wird in eingang geschrieben um vergleichen zu können .def zaehler = R19 ; zaehler wird durch Timer0 Overflow hochgezaehlt .org 0x000 rjmp init .org 0x009 rjmp timer0_overflow ; Initialisierungsphase init: ;Stackpointer wird initalisiert ldi temp, LOW(RAMEND) out SPL, temp ldi temp, HIGH(RAMEND) out SPL, temp ;Timer initalisiern ldi temp, 0b00000001 out TCCR0, temp ; Takteiler auf 1 ldi temp, 0b00000001 out TIMSK, temp ; Aktiviert Interrupt bei Overflow ;Taster 0 am Port D init. ldi temp, 0x00 out DDRB, temp ; Programmablauf (Schleife wartet auf Taster 0 am Port D) main: in eingang, PIND ; Port D wird in eingang geschrieben ldi temp, 0x00 cp eingang, temp ; eingang wird mit Null verglichen breq main ; wenn gleich springe main inc anschlaege ; anschlaege plus 1 ldi zaehler, 0xFF ; zaehler auf Zählanfang sei ; aktiviert Interrupts count: cp temp, zaehler ; Null wird mit zaehler verglichen brge count ; wenn größer oder gleich springe count nop cli ; deaktiviere Interrupts rjmp main ; Rücksprung nach main ; Handler: Timer0 Overflow timer0_overflow: dec zaehler ; zaehler minus 1 rjmp count ; Sprung nach count
wer oder was setzt mein Globales Interrupt Flag wieder auf Null. AVR Studio gibt beim simulieren
Loaded plugin Atmel AVR Assembler
Loaded partfile: C:\Programme\Atmel\AVR Tools\PartDescriptionFiles\ATmega8.xml
AVR Simulator: Please wait while configuring simulator...
AVR Simulator: ATmega8 Configured OK
Loaded objectfile: d:\C - Programme\atmel-projekte\entprell\entprell.obj
AVR Simulator: Uninitialized stack pointer used at 0x001c
AVR Simulator: Excessive stack overflow, stop sim
aus!
Danke schon mal!







Zitieren


Lesezeichen