Witam!
Od jakiegoś czasu tworzę sobie prostą centralkę alarmową na mikrokontrolerze ATMEGA8. Wszystko działa ładnie, ale czym byłby alarm bez klawiatury?
Myślałem nad dodaniem klawiatury matrycowej (16 klawiszy na 8 pinach), ale postanowiłem stworzyć coś innego. Na początek stworzyłem prosty układ z 3 guzikami (widoczny na obrazku - mam nadzieję, że nie popełniłem żadnego błędu). Niestety układ ten nie działa w zamierzony sposób - zachowuje się nieco nieprzewidywalnie. Próbowałem mój program zmieniać na różne sposoby, ale efekt z reguły jest podobny - jakikolwiek guzik nacisnę to zawsze dzieje się to samo, nawet jak program napiszę tak, aby ustawiał za pomocą wejść multipleksera (A i B) tylko jeden adres to i tak jakikolwiek guzik nacisnę to reaguje jakbym nacisnął ten 'zaprogramowany'. Może to jakiś błąd w układzie, albo jakieś niedociągnięcia w programie, ale już nie wiem gdzie można szukać przyczyny. Może ktoś ma jakieś sugestie? Poniżej zamieszczam fragment obecnej wersji programu.
z góry dzięki za pomoc
pozdrawiam
herszt
Poprawiłem tytuł:
https://www.elektroda.pl/rtvforum/topic1015361.html
Proszę umieszczać listingi w otoczeniu "code".
[c_p]
Od jakiegoś czasu tworzę sobie prostą centralkę alarmową na mikrokontrolerze ATMEGA8. Wszystko działa ładnie, ale czym byłby alarm bez klawiatury?
SIGNAL(SIG_INTERRUPT1)
{
PORTB = PORTB|0b00000010 ; //adres na multiplekserze
if(bit_is_set(PINB,2)) //sprawdzanie czy guzik wcisniety - probowalem sprawdzac czy bit jest ustawiony czy nie. ale rezultat zawsze podobny
{
write_command(0x1) ;
write_command(0x80) ;
write_text("wcisnieto guzik") ;
}
LCD_LED_ON ; //zaswiecenie LCD
waitms(500) ; //czekaj
PORTB = PORTB&0b11111100 ; //ustaw adres na 00
czuwanie() ;
}
z góry dzięki za pomoc
pozdrawiam
herszt
Poprawiłem tytuł:
https://www.elektroda.pl/rtvforum/topic1015361.html
Proszę umieszczać listingi w otoczeniu "code".
[c_p]
