Ah super das geht jetzt.
wollt jetz bisschen erweitern mit ner if Anweisung.
Code:
#include <avr/io.h>
#define F_CPU 1000000UL // 1 MHz
#include <util/delay.h>
#include <inttypes.h>
#include <stdint.h>
#define leuchtzeit 200
int main(void)
{
DDRB = (1<<DDB0) | (1<<DDB1) | (1<<DDB2) | (1<<DDB3); // PB0, PB1,PB2Ausgänge
int i=1;
while (1)
{
if (i > 30){
PORTB |= (1<<PB3);
}
else {
while (i<50) {
PORTB &= ~(1<<PB0); _delay_ms(leuchtzeit); PORTB |= (1<<PB0);
PORTB &= ~(1<<PB1); _delay_ms(leuchtzeit); PORTB |= (1<<PB1);
PORTB &= ~(1<<PB2); _delay_ms(leuchtzeit); PORTB |= (1<<PB2);
i++;
} }
}
return(0);
}
Jetzt sollte ja eigentlich nach 30 mal blinken der Ausgang PB3 angesprochen sein. Aber PB3 ist nach Programmstart sofort an und geht dann wieder aus wen PB0..3 aufhören durch zulaufen. Irgendwie ignoriert der meine if Anweisung.
Lesezeichen