Hallo...
Sry. War nur n TippfehlerIch würde vor start: noch den Punkt wegnehmen, das ist ein Label und keine Direktive! ;o)
Ich werds jetzt mal auf nem Controller testen... Danke
Edit:
Hmm... Also irgendwie klappt das nicht:
Nunja die LED in der Endlosschleife Leuchtet, aber von Timer her kommt nix....Code:.include "2313def.inc" .def temp=r16 .def int_per_sec=r17 .def _led=r18 .org 0x000 rjmp start ; Initialisierung / RESET reti ; IRQ0 reti ; IRQ1 reti ; Timer1 Capture reti ; Timer1 Compare reti ; Timer1 Overflow rjmp Time ; Timer0 Overflow reti ; SPI Complete reti ; UART Rx reti ; UART Data empty reti ; UART Tx reti ; ADC Conversion Complete reti ; EEPROM ready reti ; Analog Comparator start: ldi temp,low(ramend) out spl,temp ldi temp,0b11111111 out DDRD,temp ldi _led,1 rjmp initTimer initTimer: ldi temp,5 ;CPU-Takt/1024 out TCCR0,temp ldi temp,2 ;aktivieren des Interrups bei einem out TIMSK,temp ;Überlauf ldi int_per_sec,46 ;Anzahl der Interrupts pro Sekunde ;12MHz: 12.000.000/1024=11718,75 --> Bei jedem 11718,75ten Takt ;wird ein Interrupt eingeworfen ;=>11718,75/256(wegen 8Bit TCNT)=45,78 (ca. 46 Interrupts pro Sek.) sei ;Interrupts global erlauben endlos: ldi temp,0b0001000 out portd,temp ;Endlosschleife rjmp endlos led_an: ldi temp,0b00100011 out PORTD,temp ldi _led,0 rjmp zurueck led_aus: ldi temp,0b00000000 out PORTD,temp ldi _led,1 rjmp zurueck time: ;Aufruf bei jedem Interrupt dec int_per_sec brne zurueck ;nach 46 Interrupts (int_per_sec=0) wird ;nicht nach "zurueck" gesprungen ;irgendwas zur vollen sekunde sbrs _led,1 rjmp led_aus rjmp led_an zurueck: reti ;rücksprung in die Endlosschleife






Zitieren

Lesezeichen