PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM bei BASCOM und tiny2313! Warum Timer1??? (Gelöst, danke)



popi
04.09.2008, 09:03
Guten Morgen zusammen,

ich habe bei Roboternetz-Wissen ein kurzes abe feines Tutorial zum Thema PWM und BASCOM gefunden.
Dort ist folgender Code zu finden:


' Hardware PWM mit Timer1

$regfile = "m8def.dat"
$crystal = 4000000

Config Portb.1 = Output
Config Portb.2 = Output

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1

Do
Compare1a = 205
Compare1b = 51
Loop

End


Soweit sogut.

Nun habe ich den Code für einen tiny2313 angewendet.
Wie man sieht, wird der Timer1 für PWM konfiguriert.
Aber beim tiny ist nur Timer0 mit PWM verbunden.

Wieso aber funktiniert denn der Code auch bei 2313???

Natürlch habe ich die Ausgabeports dem 2313 entsprechend auf Portb.3 und Portb.4 konfiguriert.
Trotzdem erklärt sich für mich nicht die zeile
Config Timer1 ......

Würde mich über eine kurze Erklärung freuen.

Was mich auch wurdert ist die Tatsache, das sich bei Änderung der "Prescale"-Wertes nicht an de Blinkfrequenz ändert.

Hier mal mein Code:

$regfile "ATtiny2313.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 32
$framesize = 24

'************************************************* *****************************
Config Portb.3 = Output
Config Portb.4 = Output
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1

Dim Schleife As Integer
'************************************************* *****************************

Do

For Schleife = 100 To 250 Step 5
Compare1a = Schleife
Compare1b = 350 - Schleife
Waitms 10
Next Schleife

For Schleife = 250 To 100 Step -5
Compare1a = Schleife
Compare1b = 350 - Schleife
Waitms 10
Next Schleife

Loop

End

Danke im Voraus und Grüße

popi

Vitis
04.09.2008, 09:49
hmmm ... timer 1 hat beim 2313 auch zwei output compare register und auch
die entsprechenden pins, ergo kann er auch PWM :)

Deine Blinkfrequenz erzeugst du ja über die for-next-Schleifen
in der Mainloop, hat also mit dem Timer Prescaler nix zu tun,
sondern nur mit deiner Geschwindigkeit der Mainloop

popi
04.09.2008, 10:21
Okay, danke, ich war irritiert, da im Datenblatt links im "Inhaltsverzeichnis" folgendes zu finden ist:
8-bit Timer/Counter0 with PWM
und weiter...
16-bit
Timer/Counter1
ohne den Hinweis auf PWM

Aber (Ache über mein Haupt) im Overview der jeweiligen Timer steht tatsächlich etwas über PWM.

Schon komisch das Inhaltsverzeichnis.

Vielen Dank....