Witam od pewnego czasu męczę się z diodą rgb i atmegą8
udało mi się spłodzić taki o to program, ale mam problem z wychodzeniem z pętli a nawet to nie jest pętla (ogólnie to nie mam pojęcia czego tak właśnie tek kawałem zaznaczony działa) ale działa
w jaki sposób mogę z niego wyjść bo skończyły mi się wszelkie pomysły jak by to można zrobić. Tak na wszelki wypadek napisze jak to powinno działać bo z moimi kodami programów to jest ciężko się połapać
. Po naciśnięciu guzika ( PD0 ) ma się wybierać kolor zielony, czerwony, niebieski albo ma się wyłączać albo płynna zmiana kolorów. Wszystko działa ale jak wejdzie do zmiany kolorów to nie chce wyjść.
Z góry dzięki
Z góry dzięki
$regfile = "M8def.dat"
$crystal = 8000000
Ddrb = &HFF
Config Portd.0 = Input
sei
Enable Ovf1
Set Tccr1a.com1a1
Set Tccr1a.com1a0
Set Tccr1a.com1b1
Set Tccr1a.com1b0
Set Tccr1a.wgm10
Set Tccr1b.cs10
Set Tccr2.wgm20
Set Tccr2.wgm21
Set Tccr2.com20
Set Tccr2.com21
Set Tccr2.cs20
Dim I As Byte
Dim A As Byte
Dim B As Byte
Dim Meni As Byte
On Ovf1 Zmiana0
Meni = 2
A = 0
B = 0
I = 0
Set Portd.0
Down Alias Pind.0
'off
Do
'----------------------------------------------------------------------------
If Meni = 1 Then
For I = 0 To 255 Step 1
Waitms 1
Next I
I = 255
For A = 0 To 255 Step 1
Waitms 1
Next A
A = 255
For B = 0 To 255 Step 1
Waitms 1
Next B
B = 255
For I = 255 To 0 Step -1
Waitms 1
Next I
I = 0
For A = 255 To 0 Step -1
Waitms 1
Next A
A = 0
For B = 255 To 0 Step -1
Waitms 1
Next B
B = 0
End If
'-----------------------------------------------------------
If Meni = 2 Then 'czerwony
A = 255
B = 0
I = 0
End If
If Meni = 3 Then 'niebieski
B = 255
I = 0
A = 0
End If
If Meni = 4 Then
A = 0
B = 0
I = 255
End If ' zielony
If Meni = 5 Then
I = 0
A = 0
B = 0
End If
If Meni = 6 Then Meni = 0
Loop
End
Zmiana0:
Ocr1a = I
Ocr2 = A
Ocr1b = B
Return