@Rone: Wo du Recht hast ^^
@Sauerbruch: Ok, so weit, so gut. Aber wie verändere ich das jetzt?
@all: der obige Code ist Murks, da einige Unschönheiten. Ich habe es mal ganz anders gemacht und die Unschönheiten (bis auf die PWM- Frequenz) sind w.e.c.h. ...
Die Dokuentation habe ich erstmal weg gelassen, da mich dieser eingebaute Editor echt elendig genervt hat; kann man da nicht irgendwie Notepad++ integrieren?!? *grrr*
Code:
$regfile = "attiny13.dat"
$crystal = 4800000
$hwstack = 16
$swstack = 16
$framesize = 16
'$prog &HFF , &H72 , &HFF , &H00 ' 9,6 MHz, Vorteiler aus
$prog &HFF , &H75 , &HFF , &H00 ' 4,8 MHz, Vorteiler aus
Config Timer0 = Pwm , Compare A Pwm = Clear Down , Prescale = 1 'PWM im Schnellgang
'Ddrb.0 = 1 'OC0A als Ausgang konfigurieren
'Tccr0a = &B01000010
'Tccr0b = &B00000001
Dim Z As Byte , T As Byte , L As Byte
Dim Du As Integer , Dd As Integer , Ot As Integer
L = 8 : Du = 2000 : Dd = 2000 : Ot = 1500
Config Pinb.0 = Output
Config Pinb.1 = Input : I1 Alias Pinb.1 : Portb.1 = 1
Config Pinb.2 = Input : I2 Alias Pinb.2 : Portb.2 = 1
Config Pinb.3 = Input : I3 Alias Pinb.3 : Portb.3 = 1
Enable Pcint0
Enable Interrupts
Pcmsk = &B001110
On Pcint0 An
Hell:
While T = 0
Incr Z
Pwm0a = Z
If Z = 128 Then T = 1
Waitus Du
Wend
If T = 1 Then
Waitms Ot
Else
Z = 127 : Goto Hell
End If
While T = 1
Decr Z
Pwm0a = Z
If Z = L Then T = 2
Waitus Dd
Wend
While T = 2
nop
Wend
Goto Hell
End
An:
T = 0
If Z > 125 Then Z = 127
Return
Lesezeichen