Hi
Ich habe eine C-Zeile die irgendwie nicht funktioniert oder zumindest
nicht immer.
ich merke mir in GPIOR2,GPIOR01 ob ich gerade den Prozessortakt teile,
oder nicht. Alle Prescaler für Interrupt-timer RTC LCD usw
orientieren sich daran.
Auch die UART-Schnittstelle
1 | if (checkbit(GPIOR2,GPIOR01))
|
2 | {
|
3 | UBRR1H = 0x00;
|
4 | UBRR1L = 0x0C;
|
5 | }
|
6 | else
|
7 | {
|
8 | UBRR1H = 0x06; // UBBRH(06) Reloadwert für Highregister
|
9 | UBRR1L = 0x82; // UBRRL= (fquarz/ (16* BAUD) ) -1 (82)
|
10 | Lowregister
|
11 | }
|
bei der UART-Schnittstelle funktioniert es aber nur beim ersten Mal.
Beim wiederholten Durchlauf bekomme ich von der UART-Schnittstelle
keine Daten mehr. nehme ich die Schleife raus, funktioniert alles wie
es soll. (bei ungeteiltem Systemtakt)
Die gleiche Zeile funktioniert bei den Reloadwerten für die
Interrupttimer, die Zeiteinstellungen für das Display usw. problemlos.
Das kann doch nicht normal sein?