Gast
#2852184
Moin ich habe ein Problem mit dem Ocr0a an PB2 ich kann da keine Spannug
messen :-( egal was ich drauf schreibe....Kann mir wer helfen?
Lars
CODE:
$regfile = "attiny2313.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40
Config Portb.0 = Input
Config Pinb.2 = Output 'Die
PWM-Pins als Output definieren
Config Pinb.3 = Output 'Die
PWM-Pins als Output definieren
Config Pinb.4 = Output 'Die
PWM-Pins als Output definieren
'Die Timer auf PWM-Modus stellen
'Die PWM-Register haben eine Breite von 8 Bit - also Werte von 0 bis 255
'Wobei 0 = 0% Helligkeit und 255 = 100% Helligkeit bedeuten
Config Timer0 = Pwm , Pwm = On , Prescale = 1 , Compare A Pwm = Clear
Down , Compare B Pwm = Clear Down
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear
Down , Compare B Pwm = Clear Down
'Die Timer starten
Enable Timer0
Enable Timer1
'Interessanterweise MUSS man für OC2 Enable benutzen, sonst passiert
nix!
Start Timer0
Start Timer1
'Die PWM-Register zuweisen
Led1 Alias Ocr1bl 'PWM-Pin 1 - Red
Led2 Alias Ocr1al 'PWM-Pin 2 -
Green
Led3 Alias Ocr0a 'PWM-Pin 3 -
Blau
'ein Paar Variablen Deklarieren
Dim Color_delay As Byte
Dim Color_stop As Byte
Dim Rgb As Byte
Dim W As Word
Dim Flanke As Bit
Dim Zaehler As Byte
'Startwert für die Schleife
Rgb = 0
'Farbwechsel Geschwindigkeit pro Schritt (empfohlen 1-15) 1=schnell
15=langsam
Color_delay = 10
'Dauer der Pause bei der Grundfarbe (empfohlen 1-10)
Color_stop = 2
'Alles auf 0
Flanke = 0
Zaehler = 0
'Do.......loop
Do
'Messen der Zeit
Pulsein W , Pinb , 0 , 1
'Auswerten
If W <= 150 And Flanke = 0 Then
If Zaehler >= 5 Then
Zaehler = 0
End If
Flanke = 1
End If
If W >= 160 And W <= 200 And Flanke = 1 Then
Incr Zaehler
Flanke = 0
End If
Select Case Zaehler
Case 1:
Led1 = 255
Led2 = 0
Led3 = 0
Case 2:
Led1 = 0
Led2 = 255
Led3 = 0
Case 3:
Led1 = 0
Led2 = 0
Led3 = 255
Case 4:
Led1 = 255
Led2 = 255
Led3 = 255
Case Else :
Led1 = 0
Led2 = 0
Led3 = 0
End Select
Loop
End