Hi,
Vorteiler: 1024
CompareA: 124
CTC-Mode: EIN
CompareA-Interrupt: EIN
Ergebnis: Interrupt alle 1000ms.
Wie hab ich's gemacht?: ATtiny13 Datenblatt (!) S. 63/64; für 0,5Hz berechnet.
Wichtiges Material: http://www.mikrocontroller.net/artic..._Sekunde_/_RTC
Mit dem internen RC-Oszillator wirst Du für eine genaue Sekundenzählung nicht glücklich werden, da der sehr spannungs- und temperaturabhängig ist -- für eine "grobe" Zählung reicht der Oszillator natürlich.
73
Fred dk4bc
Von Bascom versteh' ich nichts, hier aber ein Testprogramm in C (zum Testen Breakpoint in die ISR [im Disassembler-View!] setzen):
Code:#include <avr/io.h> #include <avr/interrupt.h> ISR (TIM0_COMPA_vect) { // interrupt code (SHORT/FAST!) } int main(void) { TIMSK0=1<<OCIE0A; // Compare A interrupt TCCR0A=1<<WGM01; // CTC mode OCR0A=124; // TCCR0B=(1<<CS00)|(1<<CS02); // prescaler: 1024 sei(); while(1); }






Zitieren

Lesezeichen