http://www.mc-project.de/Pages/AVR/Timer/timer.html
vielleicht hilft dir das ja
oder so... aber wie genau schaut dann dieses interrupt aus? ich weiß, dass die frage naiv ist, aber dafür ist es ja ein forum![]()
Man muss die Welt nicht verstehen,
man muss sich nur in ihr zurecht finden.
[A. Einstein]
http://www.mc-project.de/Pages/AVR/Timer/timer.html
vielleicht hilft dir das ja
Hi!
Kann es sein, dass ein Fehler im http://www.mikrocontroller.net/artic...R-GCC-Tutorial ist ?
Im Abschnitt 9.5.2.2 (Tasten-)Entprellung
Hier wird ein delay mit 100ms angegeben. Aber 262.14ms/ 3.6864Mhz ergeben 71,1ms. Oder habe ich das nicht richtig verstanden ?Code:#include <avr/io.h> #include <inttypes.h> #ifndef F_CPU #define F_CPU 3686400UL /* Quarz mit 3.6864 Mhz */ #endif #include <avr/delay.h> /* definiert _delay_ms() ab avr-libc Version 1.2.0 */ /* Einfache Funktion zum Entprellen eines Tasters */ inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) { if ( ! (*port & (1 << pin)) ) { /* Pin wurde auf Masse gezogen, 100ms warten */ _delay_ms(100); if ( ! (*port & (1 << pin)) ) { /* Anwender Zeit zum Loslassen des Tasters geben */ _delay_ms(100); return 1; } } return 0; } int main(void) { DDRB &= ~( 1 << PB0 ); /* PIN PB0 auf Eingang (Taster) */ PORTB |= ( 1 << PB0 ); /* Pullup-Widerstand aktivieren */ ... if (debounce(&PINB, PB0)) /* Falls Taster an PIN PB0 gedrueckt.. */ PORTD = PIND ^ ( 1 << PD7 ); /* ..LED an Port PD7 an- bzw. ausschalten */ ... }
Lesezeichen