Witam
Przyszedł czas wolny więc zabrałem się za zgłębienie nauki Bascoma, celem było nauczenie się Tablic. Jako przykładowe i zarazem przydatne mi urządzenie chciałem złożyć regulator fazy z podwójnym wyświetlaczem siedmiosegmentowym LED.
Schemat jako taki na razie nie powstał, wszystko jest na płytce stykowej. Udało mi się "ogarnąć" wyświetlacz, lecz regulacja fazowa kuleje na obie nogi. Jako odbiornik podłączyłem zwykłą żarówkę 100W. Detekcja zera odbywa się na dwóch cny17 i sprawdzając diodą led ( nie mam innej możliwości) to działa dioda odłączona w jednym kierunku świeci jaśniej w drugim ledwo widać żę świeci. Układem wykonawczym jest moc3051 i bt138. Układ wykonawczy też działa poprawnie. Te dwa elementy żywcem skopiowałem z mojego poprzedniego regulatora na attiny13.
Tak jak pisałem nie działa mi regulacja fazowa, żarówka po podłączeniu zachowuje się jak chce albo świeci w 100% albo w0 % czasami po próbie regulacji dziwnie zaczyna migać i nie da się dalej nic regulować, procesor się jakby "zawiesza". Poniżej przedstawiam cały program:
proszę o szczególne zwrócenie uwagi na tabele, ponieważ używam ich pierwszy raz.
Pozdrawiam
Przyszedł czas wolny więc zabrałem się za zgłębienie nauki Bascoma, celem było nauczenie się Tablic. Jako przykładowe i zarazem przydatne mi urządzenie chciałem złożyć regulator fazy z podwójnym wyświetlaczem siedmiosegmentowym LED.
Schemat jako taki na razie nie powstał, wszystko jest na płytce stykowej. Udało mi się "ogarnąć" wyświetlacz, lecz regulacja fazowa kuleje na obie nogi. Jako odbiornik podłączyłem zwykłą żarówkę 100W. Detekcja zera odbywa się na dwóch cny17 i sprawdzając diodą led ( nie mam innej możliwości) to działa dioda odłączona w jednym kierunku świeci jaśniej w drugim ledwo widać żę świeci. Układem wykonawczym jest moc3051 i bt138. Układ wykonawczy też działa poprawnie. Te dwa elementy żywcem skopiowałem z mojego poprzedniego regulatora na attiny13.
Tak jak pisałem nie działa mi regulacja fazowa, żarówka po podłączeniu zachowuje się jak chce albo świeci w 100% albo w0 % czasami po próbie regulacji dziwnie zaczyna migać i nie da się dalej nic regulować, procesor się jakby "zawiesza". Poniżej przedstawiam cały program:
'************* Konfiguracja uC *****************
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 16000000
Config Portb = &B11111111 : Portb = &B00000000
Config Pind.0 = Input
Config Pind.1 = Input
Portd.0 = 1
Portd.1 = 1
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Sj Alias Portd.4
Sd Alias Portd.5
Dim W As Byte
Dim D As Byte
Dim J As Byte
Dim X As Byte
Dim Licz As Long
Dim Flaga As Bit
Config Timer1 = Timer , Prescale = 1024
Enable Timer1
Stop Timer1
Enable Interrupts
On Timer1 Timp
Config Int0 = Rising
Enable Int0
Enable Interrupts
On Int0 Zero
Licz = 0
W = 50
'Pętla główna
Do
If Pind.0 = 0 Or Pind.1 = 0 Then
Licz = Licz + 1
If Licz = 1000 Then
Flaga = 1
End If
If W = 0 And Pind.0 = 0 And Flaga = 1 Then
W = 99
End If
If Pind.1 = 0 And Flaga = 1 Then
W = W + 1
Flaga = 0
End If
If Pind.0 = 0 And Flaga = 1 Then
W = W - 1
Flaga = 0
End If
If W = 101 Then
W = 0
End If
If Licz = 1000 Then
Licz = 0
End If
End If
Gosub Wyswietlanie
Loop
Wyswietlanie:
J = W Mod 10
Sj = 0
Portb = Lookup(j , Tabela)
Waitus 10
Sj = 1
D = W / 10
Sd = 0
Portb = Lookup(d , Tabela)
Waitus 10
Sd = 1
Return
'przerwanie timer 0 o nazwie Timp
Timp:
Portd.3 = 1
Stop Timer1
Return
'przerwanie int0 o nazwie Zero
Zero:
Portd.3 = 0
X = Lookup(w , Moc)
Load Timer1 , X
Start Timer1
' tabela cyfr na wyswietlaczu LED
Tabela:
Data 111 , 9 , 115 , 59 , 29 , 62 , 126 , 11 , 127 , 63
' 0 1 2 3 4 5 6 7 8 9
'Podzial mocy na 100 kroków
Moc:
Data 146 , 142 , 139 , 136 , 134 , 132 , 130 , 128 , 126 , 124
Data 123 , 121 , 120 , 118 , 117 , 115 , 114 , 113 , 111 , 110
Data 109 , 108 , 106 , 105 , 104 , 103 , 102 , 101 , 100 , 99
Data 98 , 96 , 95 , 94 , 93 , 92 , 91 , 90 , 89 , 88
Data 87 , 86 , 85 , 84 , 83 , 82 , 81 , 80 , 79 , 78
Data 77 , 76 , 75 , 74 , 73 , 72 , 71 , 70 , 69 , 68
Data 67 , 66 , 65 , 64 , 63 , 62 , 61 , 60 , 59 , 58
Data 57 , 55 , 54 , 53 , 52 , 51 , 50 , 49 , 47 , 46
Data 45 , 44 , 42 , 41 , 40 , 38 , 37 , 35 , 34 , 32
Data 30 , 29 , 27 , 25 , 22 , 20 , 17 , 14 , 10 , 0proszę o szczególne zwrócenie uwagi na tabele, ponieważ używam ich pierwszy raz.
Pozdrawiam