Ich dachte so in etwas könnte das aussehen:
Code:#include <avr/io.h> #include <inttypes.h> #include <stdint.h> #define F_CPU 8000000 // 8 MHz void init_timer(void){ for(;;){ //Endlosschleife TCCR0 |= (1<<CS00)|(1<<CS02); //Teilung 1024 des Taktes if(TCNT0==255){ // alle 255 soll i eine Zahl erhöt werden i=i++;} } } int main(void){ DDRB &= (~ (1<<PB0)); /* Pin PB0 als Eingang */ PORTB |= (1<<PB0); /* Pull Up von PIN B0 aktivieren */ DDRB = (1<<DDB1); // PB1 Ausgänge int i; i=0; while(1){ if (!( PINB & (1<<PINB0))) { /* mache was wenn PinB0 low ist */ init_timer(); // Timer starten if (i < 6){ /* Wenn länger als ca.6 sec Taster gedrückt, dann aus */ PORTB|=(1<<PB1); // high } else{ PORTB&= ~(1<<PB1); // low TCNT0=0; // Timer zurück setzten } } } return 0; }







Zitieren

Lesezeichen