ATNEL tech-forum
https://forum.atnel.pl/

Sterowanie dużą ilością diod i dyrektywa #define
https://forum.atnel.pl/topic18817.html
Strona 1 z 1

Autor:  Kiriot_Onky [ 16 lip 2017, o 01:04 ]
Tytuł:  Sterowanie dużą ilością diod i dyrektywa #define

Witam, mam takie pytanko odnoszące się głównie do dyrektywy #define.
Mam na swojej płytce stykowej podłączone do ATmegi16a 26 różnokolorowe diody i właśnie chciałbym migać każdą w określony sposób (niekoniecznie taki sam) no i właśnie definiuje 26 razy każdej diody używając #define no a potem 26 razy makro które zmienia stan każdej z nich i potem jeszcze 26 razy ustawiam piny jako wejściowe no tak "łopatologicznie" zrobione i działa. Chciałbym to jednak jakoś maksymalnie uprościć. Jedyne co przychodzi mi na myśl to oddzielna tablica dla każdego portu i metoda tablicowo-matematyczna Pana Mirka. Ale czy można jakoś prościej ?

Autor:  mirekk36 [ 16 lip 2017, o 07:42 ]
Tytuł:  Re: Sterowanie dużą ilością diod i dyrektywa #define

Kiriot_Onky napisał(a):
Jedyne co przychodzi mi na myśl to oddzielna tablica dla każdego portu i metoda tablicowo


Kiriot_Onky napisał(a):
Ale czy można jakoś prościej ?


zapewniam cię - tak jest najprościej i najszybciej, bo działasz na pamięci RAM i tylko wyrzucasz tablice na porty. To może się wydawać trudne tylko wtedy gdy ktoś jeszcze nie poćwiczył i nie zapoznał się dobrze z tablicami w C, a to niestety jest podstawa ... Więc ćwicz - masz ku temu właśnie super okazję ;)

Bo oczywiście można jeszcze zastosować inne rzeczy jak np rejestry przesuwne i tylko 3 piny procka nawet na 100 diod LED albo i więcej, można zastosować MAGIC LEDy i tylko jeden pin procka - ale wciąż i tak i tak - będą potrzebne tablice ;)

Autor:  wojciechgorzolka [ 16 lip 2017, o 09:08 ]
Tytuł:  Re: Sterowanie dużą ilością diod i dyrektywa #define

rejestry przesuwne będą super rozwiązaniem. Sam zabieram się za miganie diodami, oraz za multipleksowanie i z poradników Pana Mirka wynika,że z rejestrami przesuwnymi będzie najprościej, ponieważ wystarczą trzy piny z uC. :):):)

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/