Czołem,
Od niedawna postanowiłem powalczyć z mikrokontrolerami. Zakupiłem płytkę do zestawu uruchomieniowego ZL2AVR, wszystko sobie zmontowałem i generalnie działa. To znaczy: działa, do momentu gdy próbuję odczytać stan któregokolwiek z wejść. Gdy tylko ustawiam wyjścia - wszystko działa ok. Napisałem sobie taki programik:
No i nic się nie dzieje, tzn. nie reaguje na klawisze. Jeśli ktoś zna ten zestaw to okablowałem go następująco:
* Złącza R1, R2 zwarte do masy,
* Złącza C1..C4 podłączyłem do wejśc PC0..PC3
(w ten sposób powinenem mieć na porcie C (0..3) te cztery przyciski do sterowania)
* cały port PB podłączyłem do linijki diod ( D1..D8 )
Aha, nie wiem czy to ważne, ale mam zwarte jumtery JP2 i JP3 do rezonatora i JP1 do resetu (chociaż sprawdzałem też otwartymi zworkami i bez podłączonego interfejsu SPI 0 nic się nie zmieniało).
Czy ktoś może mi podpowiedzieć co generalnie robię nie tak? Wiem że jest książka do BASCOM-a ale na razie jej nie mam. Opierałem się na opisie w necie + przykłady, ale być może coś źle zrozumiałem
________
Kompilowane pod linuxem : wine + bascomp; kod wgrywany przy avrdude
Od niedawna postanowiłem powalczyć z mikrokontrolerami. Zakupiłem płytkę do zestawu uruchomieniowego ZL2AVR, wszystko sobie zmontowałem i generalnie działa. To znaczy: działa, do momentu gdy próbuję odczytać stan któregokolwiek z wejść. Gdy tylko ustawiam wyjścia - wszystko działa ok. Napisałem sobie taki programik:
' No to tak:
'
' * Port C będzie wejciowym (bity 0..3)
' - C.0 - minimum (1)
' - C.1 - zmniejsz
' - C.2 - zwiększ
' - C.3 - maksimum (8)
'
' * Port B - wyjciowy (LED)
'
' I sterujemy linijkš wietlš, która się zwiększa/zmniejsza
' Stan linijki mamy w zmiennej LedBar
'
' Ta procedura 'przetłumaczy' i wywietli właciwy stan LEDów
Declare Sub Leddriver(v As Byte)
'
' ustawienia startowe
'
Config Portc = Input
Config Pinc.0 = Input
Config Pinc.1 = Input
Config Pinc.2 = Input
Config Pinc.3 = Input
Config Portb = Output
Ddrc = &B11110000
Dim Ledbar As Byte
Ledbar = 11
Portb = Ledbar
Do
If Pinc.0 = 0 Then
Ledbar = 1
Elseif Pinc.1 = 0 Then
If Ledbar > 1 Then
Decr Ledbar
End If
Elseif Pinc.2 = 0 Then
If Ledbar < 15 Then
Incr Ledbar
End If
Elseif Pinc.3 = 0 Then
Ledbar = 15
End If
Leddriver Ledbar
Waitms 10
Loop
End 'end program
Sub Leddriver(v As Byte)
Dim P As Byte
Select Case V
Case 1 : P = &B00000001
Case 2 : P = &B00000011
Case 3 : P = &B00000111
Case 4 : P = &B00001111
Case 5 : P = &B00011111
Case 6 : P = &B00111111
Case 7 : P = &B01111111
Case 8 : P = &B11111111
Case 9 : P = &B11111110
Case 10 : P = &B11111100
Case 11 : P = &B11111000
Case 12 : P = &B11110000
Case 13 : P = &B11100000
Case 14 : P = &B11000000
Case 15 : P = &B10000000
End Select
Portb = P
End Sub Leddriver(v As Byte)No i nic się nie dzieje, tzn. nie reaguje na klawisze. Jeśli ktoś zna ten zestaw to okablowałem go następująco:
* Złącza R1, R2 zwarte do masy,
* Złącza C1..C4 podłączyłem do wejśc PC0..PC3
(w ten sposób powinenem mieć na porcie C (0..3) te cztery przyciski do sterowania)
* cały port PB podłączyłem do linijki diod ( D1..D8 )
Aha, nie wiem czy to ważne, ale mam zwarte jumtery JP2 i JP3 do rezonatora i JP1 do resetu (chociaż sprawdzałem też otwartymi zworkami i bez podłączonego interfejsu SPI 0 nic się nie zmieniało).
Czy ktoś może mi podpowiedzieć co generalnie robię nie tak? Wiem że jest książka do BASCOM-a ale na razie jej nie mam. Opierałem się na opisie w necie + przykłady, ale być może coś źle zrozumiałem
________
Kompilowane pod linuxem : wine + bascomp; kod wgrywany przy avrdude