Mam tak wykonany układ i muszę oprogramować ATMEGA8 pod takie rozwiązanie.
Wyświetlacz 2x16 podłączony do portu B tego procesora ale pod te linie podłączono również klawiaturę (5 linii - 5 klawiszy zwieranych do masy przez rezystory 2k7). Jak to zrealizować w bascomie? Może jakiś przykład ktoś ma? Wyświetlacz konfigurowałem dyrektywą config lcd i config lcdpin, co wyklucza mi (chyba) użycie tych linii jako wejściowych?
Program w sumie reaguje na przycisk ale po jego wciśnięciu wyświetla już głupoty.
Fragment schematu:
Oraz początki kodu:
-------
Taka mała obserwacja: w oryginalnym programie zaszytym w sprawnym fabrycznym procesorze, na tych portach oscyloskop pokazuje przebieg podobny do sygnału z pilota - bez przerwy. Wciśnięcie przycisku na badanej linii nie powoduje nawet zauważalnej zmiany (mam kiepski oscyloskop) - jednak układ reaguje na ten przycisk i robi to doskonale, bezbłędnie.
Po założeniu procesora programowanego w bascomie przeze mnie, linia jest spokojna, stabilizuje się do stanu H po wysłaniu danych do lcd.
Bardzo będę wdzięczny za pomoc, jak zrealizować transmisję w sposób podobny do oryginału.
Wyświetlacz 2x16 podłączony do portu B tego procesora ale pod te linie podłączono również klawiaturę (5 linii - 5 klawiszy zwieranych do masy przez rezystory 2k7). Jak to zrealizować w bascomie? Może jakiś przykład ktoś ma? Wyświetlacz konfigurowałem dyrektywą config lcd i config lcdpin, co wyklucza mi (chyba) użycie tych linii jako wejściowych?
Program w sumie reaguje na przycisk ale po jego wciśnięciu wyświetla już głupoty.
Fragment schematu:
Oraz początki kodu:
$regfile = "m8def.DAT"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Bus , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Config Adc = Single , Prescaler = Auto , Reference = Off 'odniesienie z wejscia AREF
Start Adc
[i]'Config Pinb.2 = Input 'klawisz S1
'Config Pinb.3 = Input 'klawisz S2
'Config Pinb.4 = Input 'klawisz S3
'Config Pinb.5 = Input 'klawisz S4
'Config Pinb.0 = Input 'klawisz S5[/i]
Config Pinc.0 = Output [i]'podswietlenie: 1 = ON[/i]
Config Pinc.4 = Output [i]'speaker[/i]
Config Pinc.5 = Output [i]'sterowanie przekaznikiem: 1 = ON
[/i]
Config Pind.0 = Output [i]'ster tyryst pomocniczym boost[/i]
Config Pind.1 = Output [i]'ster tyryst glownym[/i]
Config Pind.2 = Output [i] 'ster przetwornica glowna: 0 = ON[/i]
Config Pind.3 = Input [i] 'alarm pradu pod int1, aktywny = 0[/i]
Config Pind.4 = Input [i] 'wlacznik pracy, aktywny = 0[/i]
Config Pind.7 = Output [i]' napiecie dla lcd, 1 = ON[/i]
Lcd_on Alias Portd.7
Led_on Alias Portc.0
S1 Alias Pinb.2
Set Lcd_on
Set Led_on
Cursor Off Noblink
Cls
Locate 1 , 2
Lcd "WITAM"
Do
Debounce S1 , 0 , Pr1 , Sub
Loop
End
Pr1:
Cls
Lcd "Nacisnieto S1"
Return-------
Taka mała obserwacja: w oryginalnym programie zaszytym w sprawnym fabrycznym procesorze, na tych portach oscyloskop pokazuje przebieg podobny do sygnału z pilota - bez przerwy. Wciśnięcie przycisku na badanej linii nie powoduje nawet zauważalnej zmiany (mam kiepski oscyloskop) - jednak układ reaguje na ten przycisk i robi to doskonale, bezbłędnie.
Po założeniu procesora programowanego w bascomie przeze mnie, linia jest spokojna, stabilizuje się do stanu H po wysłaniu danych do lcd.
Bardzo będę wdzięczny za pomoc, jak zrealizować transmisję w sposób podobny do oryginału.
