Witam serdecznie,
Zabawę z AVRem zaczołem dopiero kilka dni temu więc może nie rozumiem jakiegoś oczywistego faktu ale dnia dzisiejszego oszalałem
Podłączyłem sobię LCD HD44870 aby mieć lepszy wgląd w to co dzieje się w kontrolerze i postanowiłem pobawić się z portem A ustawionym na odczyt (DDRA = 0x0). W pętli ustawiłem aby wyswietlał mi 8 bitow na LCD co się okazało 0/1 zmieniały się bez mojej ingerencji same z siebie. Czasem potrafily działac dobrze w sensie uspokoic się i nie szaleć ale niestety tylko na krótką chwilę. Jeśli dany pin z portu A zostal uziemiony wtedy LCD reagowal bezblednie i wyswietlal 0 na dany PIN. Jak tylko odłączylem go od uziemienia znów zaczynał wariować... Pomyslalem sobie, pewnie źle napisałem sterownik do LCD czy coś źle podłączylem itd wiec przeszedłem do klasycznego przykładu z diodami przełącznikami i kodem:
Co sie okazalo czasami diody, które powinny świecić nie świeciły. Przez przypadek zauważyłem, że jak trzymam rękę nad układem (nie dotykając go) wszystko zaczyna działać jak nalęzy WTF? jeśli to nie pomagało wystarczyło trzymać palec na mikrokontrolerze. Sytuacja ma się tak samo na wszystkich portach
Wie ktoś o co chodzi ??
Dodano po 3 [minuty]:
(uzywam ATMega8515)
Zabawę z AVRem zaczołem dopiero kilka dni temu więc może nie rozumiem jakiegoś oczywistego faktu ale dnia dzisiejszego oszalałem
Podłączyłem sobię LCD HD44870 aby mieć lepszy wgląd w to co dzieje się w kontrolerze i postanowiłem pobawić się z portem A ustawionym na odczyt (DDRA = 0x0). W pętli ustawiłem aby wyswietlał mi 8 bitow na LCD co się okazało 0/1 zmieniały się bez mojej ingerencji same z siebie. Czasem potrafily działac dobrze w sensie uspokoic się i nie szaleć ale niestety tylko na krótką chwilę. Jeśli dany pin z portu A zostal uziemiony wtedy LCD reagowal bezblednie i wyswietlal 0 na dany PIN. Jak tylko odłączylem go od uziemienia znów zaczynał wariować... Pomyslalem sobie, pewnie źle napisałem sterownik do LCD czy coś źle podłączylem itd wiec przeszedłem do klasycznego przykładu z diodami przełącznikami i kodem:
DDRA = 0xFF;
DDRB = 0x0;
while(1)
{
PORTA = PINB;
}
Co sie okazalo czasami diody, które powinny świecić nie świeciły. Przez przypadek zauważyłem, że jak trzymam rękę nad układem (nie dotykając go) wszystko zaczyna działać jak nalęzy WTF? jeśli to nie pomagało wystarczyło trzymać palec na mikrokontrolerze. Sytuacja ma się tak samo na wszystkich portach
Wie ktoś o co chodzi ??
Dodano po 3 [minuty]:
(uzywam ATMega8515)