Przerabiam aktualnie ćwiczenia z BB, posiłkując się przy okazji filmami z YT z profilu Pana Mirka oraz archiwalnych tutoriali z mikropasji.
Przy ćwiczeniu z przerwań z okazji programowania obsługi wyświetlaczy 7 segmentowych natknąłem się na sytuację, którą nie jestem z powodu braków wiedzy rozwiązać, a nie chcę również przechodzić dalej z materiałem bez próby zrozumienia co się właściwie dzieje. Pan Mirek zachęcił mnie do opisania problemu na forum, problem może komuś się wyda znajomy i pomoże.
Efektem ćwiczeń (książka, YT) powinno być pojawienie się czterech cyfr na wyświetlaczach (jako wartości stałe bądź odliczające się w dół od wartości 6000). W moim przypadku pojawiają się również kropki (DP). Zdjęcie pierwsze to program odliczający w dół, zdjęcie drugie to wyświetlenie cyfr 007.
Dla obu przypadków Anody podłączone były do PORTC 0-3. Zmiana na PORTD nic nie zmieniła - poniższy kod już portami D.
Użyty kod jest to klasyczny kod z BB, wkleję tylko fragmenty, nie wiem czy upublicznianie całego jest możliwe: W poniższym kodzie forum ścina mi ten fragment, powinno być tak:
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Przy podłączeniu Anod do PORTC i jednoczesnym zwarciu wszystkich 8 wyjść z wejściami LED i wprowadzeniu algorytmu na świecenie diodami jak KnightRider. kropki z wyświetlacza również się zapalają i gasną. Pokazane jest to na filmie (tylko cztery diody były podłączone do testów). Wydaje mi się, że nie powinno tak być.
Po pierwsze to pamiętaj proszę, że PD0 i PD1 to piny do komunikacji UART / RS232 i jeśli nie rozpiąłeś żółtych zworek nad prockiem JP6 i JP7 to jest kaszana na linii TX pomiędzy prockiem a układem FT232R. Więc jak już te piny wykorzystujesz to rozłączaj te zworki ok?
Po drugie, zakładając że robisz coś w kodzie TYLKO na PORTC i nie używasz PORTA na którym masz podpięte zworki do segmentów wyświetlacza LED i pomimo to świecą kropki to:
1. zdejmij zworkę z pinu PA7 (odpowiedzialnego za segment H czyli za kropkę) i zobacz czy nadal będą świecić kropki
2. W ogóle na chwilę rozłącz od procka wszystkie segmenty i anody, weź dwa zwykłe przewody połączeniowe i zrób że najprostszy test czyli: Podłącz na początek jednym przewodem wspólną anodę pierwszej cyfry do GND. A następnie drugim przewodem podłączonym do GND sprawdzaj każdy pin segmentu czy się zapala prawidłowo. Tak można mega prosto i szybko sprawdzić sam wyświetlacz przecież.
3. Gdyby założyć że jak pisałem wyżej, w twoim ćwiczeniu robisz coś w kodzie tylko na PORTC i świecą kropki to wyglądałoby tak jakbyś pinem PC7 sterował segmentem H czyli być może jakby np PC7 był zwarty z PA7. No ale przecież to też łatwo można i szybko sprawdzić. Rozłącz wszystkie połączenia, wyjmij na chwilę procka z podstawki i sprawdź miernikiem (brzęczykie) czy nie ma zwarcia pomiędzy PA7 i PC7 (a nie powinno być) Gdyby było to mogłoby oznaczać, że jest coś nie tak z zestawem i wtedy trzeba byłoby go do nas podesłać tzn uówić się ze mną na maila najpierw ok?
4. Sprawdź też czy przypadkiem pin PA7 nie ma zwarcia do GND (ale raczej nie powinien mieć skoro kropki gasną czasami)
Generalnie to nie wiem po co np gdy robisz kod na ten efekt knight ridera dla zwykłych diod LED to nadal masz podłączone anody wyświetlacza LED również do PORTC - przecież to nie ma kompletnie sensu bo używasz PORTC do zwykłych diod a w TYM SAMYM czasie cztery piny PORTC aktywują w kodzie stanem niskim bazy tranzystorów od wspólnych ANOD wyświetlacza LED. Oczywiście i tak w tym czasie nie powinny sobie migać same kropki a jeśli migają to być może dlatego, że akurat na PA7 w jakiś dziwny sposób jest stan NISKI ? nie wiem - no trzeba to sprawdzić
Teraz tak patrzę jeszcze - no mieszanka na maxa w tym ATB weź wyjmij ten ANALOG INDICATOR z microport i sprawdź wtedy te swoje kody
Dzień dobry,
Dziękuję za wskazanie problemu. Odłączenie Analog Indicatora rozwiązało problem, wcześniejsze sugestie również są cenne, postaram się w przyszłości nie pozostawiać połączeń, które mogą powodować jakieś implikacje.
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników