mit diesem Code sollte mein Atmega32 an nem 16Mhz Quarz Eigentlich einmal in der Sekunde blinken.Code:#include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> int wait(time) { int i = 0; TCNT0 = 0; while(1) { if (TCNT0 % 16 == 0) i++; if (i == time) return 0; } } int main() { TCCR0 |= (1<<CS00)|(1<<CS02); DDRC = 0xFF; // Alle Pins von Port C auf Write setzten int time = 1000; PORTC = 0xFF; while(1) { PORTC |= (1<<2); wait(time); PORTC &= ~(1<<2); wait(time); } return 0; }
In wirklichkeit blinkt es aber um einiges schneller und die geschwindigkeit ist zudem noch Optimierungsabhängig.
Was ist los?
Lesezeichen