Dzień dobry, może na początku przedstawię kod testowy:
Bardzo prosty, ale ma tylko uzmysłowić/pokazać niewłaściwe/dziwne działanie pinów mikrokontrolera. Problem powstaje gdy chcę sprawdzić stan pinów jak w kodzie. W przypadku pinu Pinc.5 ustawiam na nim stan wysoki a jego zwarcie do GND ma powodować włączenie diody Led_p. Po włączeniu układu dioda świeci non stop jakby na tym pinie było zwarcie do masy, chociaż nie jest. JTAG mam wyłączony, fusebit KLA987 na wartości 010100 wew. osc. RC 8MHz. Jakby to jeszcze tak działało to pół biedy, znaczy coś niewłaściwie skonfigurowałem itd., ale...... no właśnie. Dotknę ten pin śrubokrętem gaśnie, sam się włącza, puknę znowu to się włącza i czasem sam gaśnie. Coś jakby sam uC nie mógł się zdecydować jaki na tym pinie jest stan, lub może zimny lut, poprawiłem. To samo.
Co do Pina.7 jest ciut lepiej. Zwieram go do masy dioda świeci, puszczam zwarcie i teraz.....dioda nadal świeci a po jakiejś sekundzie się wyłącza i to jest akurat powtarzalne na tym pinie. Tutaj jakby dziwna pojemność nie pozwalała rozłączyć pinu ze zwarcia od razu (taka moja obserwacja).
Próbowałem zmienić definicję pliku uC i testowałem w wariantach m16adef.dat i m16def.dat cały czas jest to samo. Czytałem forum i Bascomowicze mają rozterki z wersjami ATmega16 i ATmega16A, w większości radzono im przejście na C. Ja spróbuję Was zapytać, może akurat, ktoś spotkał się z taką sytuacją, na pewno ktoś z Was ma większe doświadczenie. Czy uC jest oryginalny nie wiem, czy może być uszkodzony? Mam jeszcze jeden...pytanie czy nie warto przelutować go na wersję 16 bez A. Niby A jest bardziej energooszczędny i w innej technologii, być może to wpływa na dziwne pływanie pinów. Proszę o pomoc i wskazówki.
Dziękuję z góry.
PS. w przypadku pinu C.5 jest on bezpośrednio podłączony do włącznika zwiernego i do GND, w przypadku A.7 pin jest podłączony przez zworę (otwieraną i zamykaną do testów) i szeregowy rezystor 1K do GND.
$regfile = "m16adef.dat"
$crystal = 8000000
Config Pina.7 = Input
Config Pinc.5 = Input
Config Pinc.4 = Output
Poziom Alias Pina.7
Obudowa Alias Pinc.5
Led_p Alias Portc.4
Obudowa = 1
Poziom = 1
Led_p = 0
Do
If Obudowa = 0 Then
Led_p = 1
Else
Led_p = 0
End If
Loop
Bardzo prosty, ale ma tylko uzmysłowić/pokazać niewłaściwe/dziwne działanie pinów mikrokontrolera. Problem powstaje gdy chcę sprawdzić stan pinów jak w kodzie. W przypadku pinu Pinc.5 ustawiam na nim stan wysoki a jego zwarcie do GND ma powodować włączenie diody Led_p. Po włączeniu układu dioda świeci non stop jakby na tym pinie było zwarcie do masy, chociaż nie jest. JTAG mam wyłączony, fusebit KLA987 na wartości 010100 wew. osc. RC 8MHz. Jakby to jeszcze tak działało to pół biedy, znaczy coś niewłaściwie skonfigurowałem itd., ale...... no właśnie. Dotknę ten pin śrubokrętem gaśnie, sam się włącza, puknę znowu to się włącza i czasem sam gaśnie. Coś jakby sam uC nie mógł się zdecydować jaki na tym pinie jest stan, lub może zimny lut, poprawiłem. To samo.
Co do Pina.7 jest ciut lepiej. Zwieram go do masy dioda świeci, puszczam zwarcie i teraz.....dioda nadal świeci a po jakiejś sekundzie się wyłącza i to jest akurat powtarzalne na tym pinie. Tutaj jakby dziwna pojemność nie pozwalała rozłączyć pinu ze zwarcia od razu (taka moja obserwacja).
Próbowałem zmienić definicję pliku uC i testowałem w wariantach m16adef.dat i m16def.dat cały czas jest to samo. Czytałem forum i Bascomowicze mają rozterki z wersjami ATmega16 i ATmega16A, w większości radzono im przejście na C. Ja spróbuję Was zapytać, może akurat, ktoś spotkał się z taką sytuacją, na pewno ktoś z Was ma większe doświadczenie. Czy uC jest oryginalny nie wiem, czy może być uszkodzony? Mam jeszcze jeden...pytanie czy nie warto przelutować go na wersję 16 bez A. Niby A jest bardziej energooszczędny i w innej technologii, być może to wpływa na dziwne pływanie pinów. Proszę o pomoc i wskazówki.
Dziękuję z góry.
PS. w przypadku pinu C.5 jest on bezpośrednio podłączony do włącznika zwiernego i do GND, w przypadku A.7 pin jest podłączony przez zworę (otwieraną i zamykaną do testów) i szeregowy rezystor 1K do GND.

