Cześć! Zacząłem niedawno eksperymenty z Bascomem na płytce ZL3AVR, obecnie wziąłem sobie za cel napisanie zegarka na wyświetlacze 7-segmentowe, ale mam problem z ich obsługą.. a konkretniej wyświetlaniem kolejnych cyfr w pętli.
Wszystko działało (w sensie wyświetlały się cyferki, nic specjalnego:)), zanim nie postanowiłem zastosować właśnie pętli FOR do wyświetlenia kolejnych cyfr. Pierwszym problemem okazał się brak możliwości stworzenia aliasów lub tablicy bitów dla Portów mikrokontrolera, więc przypisałem je do tablicy bytów aktualizowanych w pętli z aliasami portów. Efekt jest taki, że obecny program wyświetla wszystkie segmenty i czasem sobie mrugnie tylko, ale w żaden sposób nie pokazując cyfr które umieszczam w zmiennych..
Fizyczne połączenia:
PortA.0-7 - Segmenty wyświetlaczy
PortC.0-3 - 4 przyciski
PortD.4-7 - Zasilanie kolejnych segmentów
Program wygląda następująco:
W zamyśle ma to wyglądać następująco:
1) Zwiększ odpowiednie wartości, jeżeli naciśnięto przycisk
2) W pętli:
- Włącz wyświetlacz o numerze A
- Uaktualnij stan wyjść
- Wystaw na PortA odpowiednią kombinację
- Odczekaj, żeby sobie LEDy poświeciły
- Wyłącz wyświetlacz o numerze A
- Przejdź do następnego wyświetlacza
Opis zmiennych/aliasów:
Sw01, Sw05, Sw09, Sw13 - aliasy Pinc.0-4, gdzie podłączone są przycisk zwierające do masy
C1, C2, C3, C4 - aliasy Portd.4-7 gdzie podłączone są bazy tranzystorów BC327 załączających zasilanie segmentów
Disptime - czas w ms dla wyświetlacza na wyświetlenie cyfry
A - zmienna do obsługi pętli
Cathode(x) - tablica pomocnicza dla wprowadzenia powiązania pomiędzy pętlą, a aliasami C1..C4
Digit(x) - przechowuje wartość do wyświetlenia na wyświetlaczu o numerze x
Number(x) - kombinacja wyjść reprezentująca daną cyfrę na wyświetlaczu
Będę wdzięczny za wszelką pomoc
[/code]
Wszystko działało (w sensie wyświetlały się cyferki, nic specjalnego:)), zanim nie postanowiłem zastosować właśnie pętli FOR do wyświetlenia kolejnych cyfr. Pierwszym problemem okazał się brak możliwości stworzenia aliasów lub tablicy bitów dla Portów mikrokontrolera, więc przypisałem je do tablicy bytów aktualizowanych w pętli z aliasami portów. Efekt jest taki, że obecny program wyświetla wszystkie segmenty i czasem sobie mrugnie tylko, ale w żaden sposób nie pokazując cyfr które umieszczam w zmiennych..
Fizyczne połączenia:
PortA.0-7 - Segmenty wyświetlaczy
PortC.0-3 - 4 przyciski
PortD.4-7 - Zasilanie kolejnych segmentów
Program wygląda następująco:
Kod: text
W zamyśle ma to wyglądać następująco:
1) Zwiększ odpowiednie wartości, jeżeli naciśnięto przycisk
2) W pętli:
- Włącz wyświetlacz o numerze A
- Uaktualnij stan wyjść
- Wystaw na PortA odpowiednią kombinację
- Odczekaj, żeby sobie LEDy poświeciły
- Wyłącz wyświetlacz o numerze A
- Przejdź do następnego wyświetlacza
Opis zmiennych/aliasów:
Sw01, Sw05, Sw09, Sw13 - aliasy Pinc.0-4, gdzie podłączone są przycisk zwierające do masy
C1, C2, C3, C4 - aliasy Portd.4-7 gdzie podłączone są bazy tranzystorów BC327 załączających zasilanie segmentów
Disptime - czas w ms dla wyświetlacza na wyświetlenie cyfry
A - zmienna do obsługi pętli
Cathode(x) - tablica pomocnicza dla wprowadzenia powiązania pomiędzy pętlą, a aliasami C1..C4
Digit(x) - przechowuje wartość do wyświetlenia na wyświetlaczu o numerze x
Number(x) - kombinacja wyjść reprezentująca daną cyfrę na wyświetlaczu
Będę wdzięczny za wszelką pomoc