Forum: Compiler & IDEs if - fehler


von flyingwolf (Gast)


Lesenswert?

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?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.