Zähler zählt nicht wenn Startwert zu klein Wie kann das sein!?

Gast #5423526
Lesenswert?
• ▲
▼
Hallo, kann mir wer erklären, warum die angeschlossene LED mal blinkt 
und mal nicht?
Irgendwie scheinen der Vergleich mit 0xff und ein Resetwert < 256 nicht 
zu funktionieren! Aber warum?
Kann das mal jemand bei sich testen? Mit dem Tiny85 bekomme ich diese 
seltsamen Ergebnisse..

1
int main(void){
2
  DDRB = 0xff;
3
  static uint16_t cnt = 0;
4

5
  while(1){
6
    //if(cnt++==0xff){ PORTB = ~PORTB; cnt = 255u; }  // geht nicht
7
    if(cnt++==0xfe){ PORTB = ~PORTB; cnt = 255u; }    // geht
8
    //if(cnt++==0xff){ PORTB = ~PORTB; cnt = 256u; }  // geht
9

10
    //if(!(cnt++)){ PORTB = ~PORTB; cnt = 255u; }    // geht
11
    //if(cnt++==0){ PORTB = ~PORTB; cnt = 255u; }    // geht
12

13
    uint8_t i = 63;
14
    while(i--);
15
  }
16

17
  return 0;
18
}
Beitrag #5423547 wurde von einem Moderator gelöscht.
Beitrag #5423552 wurde von einem Moderator gelöscht.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.