Hallo!
Ich habe folgendes Problem, ich verwende einen Attiny13 dessen Timer0
fix mit fosc/64 ( in dem Fall also 9.6MHz/64 ) betrieben wird, aufgrund
der Aufgabe im Timer Compare B Interrupt, den ich auch nicht verändern
kann.
Der Timer Compare B Interrupt wird verwendet, der Timer Compare A bleibt
also noch frei.
Ich hätte mir nun folgendes Programm überlegt, es sollte funktionieren,
aber hat jemand eine bessere Idee?
1 | ISR( TIM0_COMPA_vect )
|
2 | { if(x==1)
|
3 | { PWM = 1; // Ausgang immer auf High
|
4 | }
|
5 |
|
6 | else if(x<31)
|
7 | { if(toggle)
|
8 | { PWM = 1; // Ausgang High
|
9 | toogle = 0;
|
10 | OCR0A = TCNT0 + x;
|
11 | }
|
12 | else
|
13 | { PWM = 0; // Ausgang Low
|
14 | toogle = 1;
|
15 | OCR0A = TCNT0 + 31 - x;
|
16 | }
|
17 | }
|
18 | else
|
19 | { PWM = 0; // Ausgang immer auf Low
|
20 | }
|
21 | }
|
Schöne Grüße aus Österreich,
Manuel