Hallo Zusammen,
Arbeite grad die Grundlagen der µC-Programmierung durch (mit ´nem
STK500)
Aktuell programmiere ich ne Art "Frequenzgenerator" bei dem ne LED mit
unterschiedlcihen Frequenzen (100Hz, 50Hz, 5Hz, 1Hz) "blinkt".
Dies soll durch das Betätigen von 2 Tastern gesteuert werden:
LED blinkt mit 1Hz , wenn beide Taster gedrueckt
5Hz, wenn Taster1 gedrueckt
50Hz, wenn Taster0 gedrueckt
100Hz, wenn kein Taster gedrueckt
(Bei Tastendruck wird PIN auf 0 gezogen)
Die Zeitschleifen zur Erzeugung der Frequenzen funktionieren. Aber die
Verzweigungen am Anfang funktionieren nicht wie erwartet.
Das Programm scheint nur mit der 100Hz Schleife zu starten und bei
Tastendruck ändert sich nichts. Beim Debuggen konnt ich auch nichts
entdecken, dort funktionieren die Sprünge wie erwartet, wenn die PIND
Bits entsprechend gesetzt sind.
Sieht jmd. nen Fehler oder hat ne Alternative für mich?
Gruß und danke vorab...
1
INIT:
2
.DEF Temp1 = r16
3
.DEF Mask = r17
4
.DEF WL = r24
5
.DEF WH = r25
6
7
.EQU LEDPin = 0
8
.EQU T0Pin = 0
9
.EQU T1Pin = 1
10
11
;Def. Ausgaenge
12
ldi Temp1, 0x00
13
out DDRB, Temp1
14
sbi DDRB, LEDPin ;LEDPin Bit in PORTB als Ausgang (1) setzen
15
sbi PORTB, LEDPin ;Ausgang auf HIGH setzen (LED gegen VCC - STK500)
Ich würde die nicht benutzten Portpins vor der Abfrage ausmaskieren.
Denn wenn sie nicht beschaltet sind, ist ihr Zustand undefiniert. Oder
Du schaltest die Pull-Ups ein, dann sind sie sicher "1".
Gruß Dietrich