Forum: Mikrocontroller und Digitale Elektronik Software PWM mit nur 4 Bit


von Manuel (Gast)


Lesenswert?

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

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

ich nehme mal an des der Timer immer bis 255 durchläuft. Dann kannst du 
doch auch die PWM-Funktion des Timers nehmen, und deinen 4-Bit-Wert in 
die oberen 4-Bit des OCR0A-Registers schreiben. Wenn du natürlich nur 
deshalb auf 4-Bit gehst damit die Frequenz höher ist dann nützt das 
nichts.

Sascha

von Falk B. (falk)


Lesenswert?

Die bessere Idee nennt sich Soft-PWM

von Manuel (Gast)


Lesenswert?

Hallo!

Ja es geht um eine höhere Frequenz.

Natürlich hätte der Titel 5-Bit lauten sollen, hab mich verdrückt.

@Falk:
Ich habe es mir mal angesehen, Lösung 2 sieht aber schonmal nicht 
passend aus, aber ich werde es mir noch weiter ansehen, danke!

Schöne Grüße
Manuel

von Peter D. (peda)


Lesenswert?

Warum keine Fast-PWM, das läuft der Timer normal durch.
Die Flackerfrequenz sollte mit 586Hz doch ausreichend hoch sein.

Eine andere Möglichkeit wäre ATtiny25, der hat 2 Timer.


Peter

von Manuel (Gast)


Lesenswert?

Grüß dich Peter,

ich hätte gerne etwas mehr im Bereich 3-4kHz. Fast PWM hilft mir doch 
auch nur die doppelte Frequenz zu erhalten richtig?

Es geht nicht um die Flackerfrequenz sondern um die minimierung eines 
zum Einsatz kommenden Kondensators.

Schöne Grüße
Manuel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.