Nietypowy PROBLEM

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Misha
-
Posty: 9
Rejestracja: 24 sie 2005, 13:04

Nietypowy PROBLEM

Post autor: Misha » 01 lut 2006, 20:49

Witam
Posiadam zestaw uruchomieniowy ZL1AVR i 2 mikrokontrolery 90S2313 do nauki programowania w Bascomi. Ostatnio z moimi "prockami" zaczeły sie dzić bardzo dziwne rzeczy np: gdy zaprogramuje procesor bardzo prostym programem:
Config Portb = Output
Config Portd = Input
Dim A As Byte
A = 200
Do
If Portd.0 = 1 Then
Waitms 500
A = A + 1
Cls
Lcd A
End If
Loop
End
zaczyna wariowac (takze z innymi programami). Sam z z duza predkoscia wyswietla i zmienia zmienna. Co dziwne gdy dotkne palcem goldpinu odpowiadajacemu Portd.0 wszystko sie zatrzymuje, a co jeszcze dziwniejsze wystarczy ze zblize palec (nie dotykajac) do zworek Portb takze sie zatrzymuje licznik, podobnie sie dzieje gdy np stukne w biurko. Podobmie jest z innymi programami. Ale gdy zaprogramuje procesor juz gotowym, skompilowanym przykladem z ksiazki Mikrokontrolery AVR w praktyce dziala dobrze, inaczej jest gdy go zaprogramuje przykladem z innej ksiazki. Czego to moze byc wina? Czy mam uszkodzone procesorki? A moze to zestaw uruchomieniowy? Bardzo Was prosze pomuzcie bo mi juz sie skonczyly pomysly!!!!
Pozdrawiam

jareks91
Użytkownik
Posty: 157
Rejestracja: 15 kwie 2005, 13:30

Post autor: jareks91 » 01 lut 2006, 22:36

Też tak kiedyś miałem. Jak nie podciągłem wewnętrzenego zasilania i ustawilem nózke na wejście to ładunki z palca przeskakują na pin a procek odczytuje to jako stan wysoki,
Krótko mówią (szpilki) zakłócenia odbiera twój procek, przez złe skonfigurowanie portów.
Pozdro

misci
-
Posty: 17
Rejestracja: 20 paź 2005, 22:07

Post autor: misci » 02 lut 2006, 16:27

Jeśli chcesz sprawdzić stan końcówki d.0 to zmień instrukcję warunkową na:
If Pind.0 = 1 Then ...
Pamiętać należy o rezystorach podciągających końcówki (wewnętrznych lub zewnętrznych). W tym przypadku kiedy sprawdzasz stan wysoki trzeba by połączyć końcówkę z masą za pomocą rezystota (na oko 10k powinno być dobre).
Co do dziwnego zachowania należy sprawdzić elektronikę (polecam lupę) lub/i zaopatrzyć się w nowy procek (i tak prędzej czy później się przyda kiedy jego poprzednik "wyzionie ducha").

ODPOWIEDZ