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