Ich möchte einen Timer programmieren, den ich an bestimmten stellen in
der main starten kann und falls innerhalb der Zeit (100ms) der Timer
nicht deaktiviert wurde, soll beim anfang von "int main()" fortgesetzt
werden. Ist das überhaupt möglich??? Kann mir jemand weiterhelfen.
Das ganze soll zum abbrechen einer while schleife gebraucht werden.
Ich habe schon mir einige gedanken darüber gemacht und hier mal den code
eingefügt.
1 | #include <avr/interrupt.h>
|
2 |
|
3 | ISR (TIMER0_OVF_vect)
|
4 | {
|
5 | //Interrupt Aktion alle 100ms
|
6 | goto RESTART;
|
7 | }
|
8 |
|
9 | int main(void)
|
10 | {
|
11 | RESTART:;
|
12 |
|
13 | ...
|
14 |
|
15 | TCCR0A = (1<<WGM01); // CTC Modus
|
16 | TCCR0B |= (1<<CS00); // Prescaler 1
|
17 | OCR0A = 160-1; // ((16000000/64)/100000) = 160
|
18 |
|
19 | // Compare Interrupt erlauben
|
20 | TIMSK0 |= (1<<OCIE0A);
|
21 |
|
22 | // Global Interrupts aktivieren
|
23 | sei();
|
24 |
|
25 | ...
|