PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM mit ATtiny13



rapo
14.05.2005, 15:46
Hallo zusammen,
habe einen ATtiny13, den wollte ich mit Bascom prog.
Das Problem: :-k
Der Tiny13 hat einen Timer0, der als PWM genutzt werden kann, doch der Befehl "config timer0 = PWM,....." geht nicht, da Bascom anscheinend die PWM-Funktion nur ab Timer1 unterstützt...
Muß ich das Ganze jetzt rein über Register programmieren oder gibts Tricks??
Grüße Ralf

rapo
23.05.2005, 10:06
Hallo,
danke für eure hilfe :-k
läuft... direkt über register

gizzel
03.10.2006, 18:25
hallo,
habe selbes Problem mit dem Tiny 13 und Pwm.
Was muß ich machen?
Hat jemand evt. ein kleines Beispiel-Script?
compare1a, pwm1a etc. funktioniert nicht.

wäre sehr dankbar für info.




http://home.arcor.de/gizzel

gizzel
03.10.2006, 23:41
So Jungs und Mädels,
zwar keine Antwort bekommen, aber selbst rausgefunden, wo mein fehler war. darf man gar keinen erzählen.

funktioniert doch, wenn man Ocr0a = x und Ocr0b = x schreibt.

mein Fehler war, daß ich noch $baud = 9600 oben drin stehen hatte. Das mochte er gar nicht. Hat ja nun gar keine Uart (soweit ich weiß). Hat Bascom aber auch nichts zu gesagt. Hat mir den Fehler bei den Pwm-Zeilen rausgegeben.

Na ja. Nun alles OK.

hier mein kleines Progg:

'--------------------------------------------------------------
' Drehzahlregelung -
' Speichert Drehzahl im Eprom (zB. für Stromausfall)
' Speicherung max. ca. alle 10 sec und nur nach Tastenbetätigung
' um das Eprom zu schonen
' Tasten an PB3 und PB4, LED ("ist gespeichert") an PB2
' Motor oder Leistungstreiber an PB0 und/oder PB1
'---------------------------------------------------------------
$regfile = "ATtiny13.DAT"


Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Input
Config Pinb.4 = Input
Portb.3 = 1
Portb.4 = 1 'PullUP ein
Config Timer0 = Pwm , Pwn = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
Enable Timer0
Enable Interrupts

Dim D As Byte 'D = Drehzahl
Dim Z As Long 'Zähler für "Eprom-Schonung"
Dim T As Byte 'toggle für "Eprom-Schonung"
Dim E As Eram Byte

Readeeprom D , &H10

If D = 0 Then D = 150
If D = 255 Then D = 150

Do

Ocr0a = D 'PWM Wert setzen
Ocr0b = D

If Pinb.3 = 0 And D > 1 Then
Decr D
T = 1 'Wenn Taste, dann auf 1 toggeln,
End If 'damit irgendwann gespeichert wird

If Pinb.4 = 0 And D < 254 Then
Incr D
T = 1
End If
Incr Z 'Zähler erhöhen bei jedem Durchlauf

If Z > 500 Then
Z = 0
If T = 1 Then
Writeeeprom D , &H10 'Drehzahl speichern
T = 0
Portb.2 = 1 'aufblinken, wenn gespeichert wird
Waitms 500
Portb.2 = 0
Waitms 500

End If
End If