;-------------------------------------------------------------------- ; ; rcen_test ; ; Läst eine LED am Pin PD0 blinken um ein arbeiten des ; Prozessors zu checken. Das ganze ist für den unteren ; Sockel des RCEN Fuse-Bit-Setzers damit man schauen kann ; ob der Slave jetzt ohne Quarz läuft oder nicht ; ; ;-------------------------------------------------------------------- .include "1200def.inc" .def pa = r18 .def temp = r19 ;------------------ los geht's -------------------------------------- ldi temp, 0b00000001 ; Port D, Pin 0 als Ausgang schalten out DDRD, temp loop: sbi PORTD, 0 ; LED an rcall pause ; einen Moment warten cbi PORTD, 0 ; LED aus rcall pause ; einen Moment warten rjmp loop ; und wieder von vorne... ;-------------------------- pause -------------------------------------------- ; abhängig vom Inhalt von reg. pa wird entspr. lange gewartet ; einmal pa entspricht einmal überlaufen des 8-Bit Timers mit ; einem Vorteiler von 1024, d.h. t= (1/fq) * 1024 * 256 pause: ldi pa, 5 pa_loop: ; Vorteiler für den Timer auf 1024 setzen ldi temp, 0b00000101 out tccr0, temp ; das Überlaufbit des Counters zurücksetzen, in temp, tifr sbr temp, 2^tov0 out tifr, temp ; Den Zähler mit Null vorsetzen clr temp out tcnt0, temp ; wenn tcnt0 überläuft wird tov0 gesetzt cwait: in temp, tifr sbrs temp, tov0 rjmp cwait dec pa ; jetzt ist der Timer einmal übergelaufen, brne pa_loop ; pa runterzählen, wenn noch nicht auf 0 ; dann nochmal hoch und den Timer neu aufziehen ret