-
-
PWM mit ATtiny13
Hallo zusammen,
habe einen ATtiny13, den wollte ich mit Bascom prog.
Das Problem:
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
-
Hallo,
danke für eure hilfe
läuft... direkt über register
-
Neuer Benutzer
Öfters hier
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
-
Neuer Benutzer
Öfters hier
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
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen