Ich habe mich vor kurzem auch mal mit dem Thema PWM beschäftigt.
Bin zuerst auch daran gescheitert dass waitus nur Konstanten verwendet und habe es dann mit waitms probiert.
Hier mein Ergebnis (für einen Tiny13V):
Code:
'============================================================
'
' ************************************
' *** ***
' *** Dimmendes Blinklicht ***
' *** ***
' ************************************
'
' µC: ATtiny13
' +Ub: 3,00 V
'
'
'============================================================
$regfile = "ATtiny13.DAT"
$crystal = 128000 'Frequenz des internen 128kHz-Oszillators
Config Portb = &B00011000 'Pinb.3 und 4 auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = &B11100111 'Pullups zuschalten, außer für Pinb.3 und .4
Stop Adc 'A/D-Wandler abschalten, um Strom zu sparen
Stop Ac 'Analog-Komparator abschalten, um Strom zu sparen
Dim A As Byte
Dim B As Byte
Dim Stufen As Byte
Stufen = 20
Do
For A = 0 To Stufen
B = Stufen - A
Gosub Pwm
Next
For A = Stufen To 0 Step -1
B = Stufen - A
Gosub Pwm
Next
Waitms 1000
Loop
Pwm:
Portb.3 = 1
Waitms A
Portb.3 = 0
Waitms B
Return
End
Lesezeichen