Verzweifle am Unterporgramm - Bit wird nicht gelöscht

OP #4878409
Hallo zusammen,

ich habe mir ein ziemlich simples Unterprogramm geschrieben.
1
void blink(uint8_t k)
2
{
3
  volatile uint8_t i;
4
  for (i=0;i<=k;i++)
5
  {
6
    PORTB |= (1<<PB1);
7
    _delay_ms(200);
8
    PORTB &= ~(1<<PB1);
9
  }
10
  _delay_ms(1000);
11
}

Im Main sieht es so aus
1
int main(void)
2
{
3
  DDRB = (1<<DDB0)|(1<<DDB1); //PB0 und PB1 als Ausgänge
4
  PORTB =0x00;
5
  blink(10);
6
  while(1)
7
  {
8
        
9
  }
10
}

Es soll eine LED x-mal zum blinken bringen. Im Simlator läufts und der 
Port geht 10 mal an und wieder aus. Das ganze läuft (bzw. läuft nicht 
;-) ) auf einem ATtiny85 bzw. einem Adafruit Trinket 
(https://learn.adafruit.com/introducing-trinket/downloads) Ich merke an 
der Zeit, dass die delays abgearbeitet werden aber die LED bleibt 
konstant an.
Was übersehe ich?

Gruß
Joachim
Gast
Joachim J. schrieb:
> for (i=0;i<=k;i++)
>   {
>     PORTB |= (1<<PB1);
>     _delay_ms(200);
>     PORTB &= ~(1<<PB1);
>   }

Nach dem Löschen des Bits wird es sofort wieder gesetzt.
Baue ein zweites delay ein, dann siehst du auch was.
1
  {
2
    PORTB |= (1<<PB1);
3
    _delay_ms(200);
4
    PORTB &= ~(1<<PB1);
5
    _delay_ms(200);
6
  }

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.