Witam,
Dotychczas na AVRach robiłem tylko logiczne sterowanie triakami, tranzystorami, czasami sczytywanie danych z termopar... Przyszedł czas na naukę sensownego multipleksowania.
A więc,
złożyłem sobie układzik składający się z atmegi8, 4543 i trzech wyświetlaczy led siedmiosegmentowych. Dążę do tego, aby na wyświetlaczach pojawiało się kolejno:
012
123
234
345
456
567
678
789
890
901
012 itd.
Czyli tak jakby przesuwanie cyfr.
Przy czym miganie wyświetlaczy ma być niewidzialne dla ludzkiego oka.
Ostatecznie popełniłem coś takiego (proszę nie zwracać uwagi na brak niektórych oznaczeń i estetykę, schemat szkicowany na szybko):
Porty D 0-2 sterują anodą wyświetlaczy, a PB 0-3 wysyłają dane do 4543 jaką cyfrę w danym czasie ma wyświetlić.
A efekt tak jak w linku: Youtube.
Nie mogę ostatecznie pojąć dlaczego wyświetlacze dają czasami zamierzony efekt, a czasami zwyczajnie wariują. Kod wedle mnie wydaje się logiczny i poprawny. Będę wdzięczny za wszelkie sugestie.
Pozdrawiam,
Bartek.
Dotychczas na AVRach robiłem tylko logiczne sterowanie triakami, tranzystorami, czasami sczytywanie danych z termopar... Przyszedł czas na naukę sensownego multipleksowania.
A więc,
złożyłem sobie układzik składający się z atmegi8, 4543 i trzech wyświetlaczy led siedmiosegmentowych. Dążę do tego, aby na wyświetlaczach pojawiało się kolejno:
012
123
234
345
456
567
678
789
890
901
012 itd.
Czyli tak jakby przesuwanie cyfr.
Przy czym miganie wyświetlaczy ma być niewidzialne dla ludzkiego oka.
Ostatecznie popełniłem coś takiego (proszę nie zwracać uwagi na brak niektórych oznaczeń i estetykę, schemat szkicowany na szybko):
Porty D 0-2 sterują anodą wyświetlaczy, a PB 0-3 wysyłają dane do 4543 jaką cyfrę w danym czasie ma wyświetlić.
Kod: C / C++
A efekt tak jak w linku: Youtube.
Nie mogę ostatecznie pojąć dlaczego wyświetlacze dają czasami zamierzony efekt, a czasami zwyczajnie wariują. Kod wedle mnie wydaje się logiczny i poprawny. Będę wdzięczny za wszelkie sugestie.
Pozdrawiam,
Bartek.