Te porty ustawione są na wyjścia PA0..PA7, PB0..PB7, PC0..PC7, PD0...P4 do każdego z nich podłączony jest 1 LED.
Porty PD5...PD7 ustawione są na wejścia i do każdego podłączony 1 przycisk.
Program ma działać następująco. Gdy zostanie włączony 1 przycisk jeden raz zapali się pierwsza sekcja LED-ów, gdy przycisk nr 1 zostanie wcisnięty 2 raz następna sekcja. I tak do momentu wciśnięcia przycisku nr 13 razy. Za 14 razem LED-y powinny zgasnąć.
Gdy podczas wykoywania instrukcji z przycisku nr1 zostanie wcisnięty przycisk nr 2 lub 3, licznik stanu przycisku nr 1 powinien być zerowany. Gdy ponownie nacisniemy przycisk nr 1 (bo użyto przycisk nr 2 lub nr 3) sekwencja zapaleń LED powinny zaczynać się od zapalenia 1 sekcji, potem 2 itd...
Gdy zostanie wcisnięty przycisk nr 2 jeden raz LEDy będą wykonywać nieskończoną sekwencje "programu_1" (zapalenie jednych zgaszenie drugich LED-ów z opóźnieniami), gdy wcisnę przycisk nr 2 drugi raz odpali się analogicznie jak "program_1", "program_2" (zapalenie jednych, zgaszenie drugich LED-ów z opóźnieniami, innych niż w przypadku "programu_1"). Przycisk nr_2 będzie można wcisnąć powiedzmy 6 razy ("6_programów"). Za 7 wcisnięciem LED-y powinny zgasnąć.
Gdy podczas wykoywania instrukcji z przycisku nr2 zostanie wcisnięty przycisk nr 1 lub 3, licznik stanu przycisku nr 2 powinien być zerowany. Gdy ponownie nacisniemy przycisk nr 2 (bo użyto przycisk nr 1 lub nr 3) sekwencja zapaleń LED powinny zaczynać się od zapalenia LED-ów z "programu_1, potem program_2 itd...
Gdy zostanie wcisnięty przycisk nr 3, LED-y powinny zgasnąć, bez znaczenia czy jest aktywna któraś sekcja z przycisku nr 1 czy nr 2. Bezwarunkowe wyłącznie LED-ów. Gdy zostanie wcisnięty przycisk nr 1 lub nr 2 powinny sie wykonywać instrukcje do poszczególnych przycisków.
Oto co do tej pory udało mi się stworzyć:
Skorzystałem z gotowej biblioteki:
PLIK buttons.c
PLIK buttons.h
A tutaj jest problem:
Instrukcja switch odpowiada, który przycisk został wcisnięty.
Case0 // został wcisniety przycisk 0 (czyli 1)
zwiekszamy licznik przycisku o 1 aby poniżej w pierwszej instrukcji if == 1 wykonała się pierwsza procedura (czyli zapalenie 1 sekcji).
Pierwsza sekcja LED jest uruchomiona. Teraz wciskam przycisk nr 1 , drugi raz.
Gdzie w programie powinno być zwiększenie licznika przycisku nr 1 o jeden, zeby zapaliła sie druga sekcja? Czy w instrukji 1-go if-a? Chodzi o to żeby program sprawdził czy przycisk nr 1 jest drugi raz lub kolejne razy wcisnięty.
Ma ktoś jakiś pomysł?
Porty PD5...PD7 ustawione są na wejścia i do każdego podłączony 1 przycisk.
Program ma działać następująco. Gdy zostanie włączony 1 przycisk jeden raz zapali się pierwsza sekcja LED-ów, gdy przycisk nr 1 zostanie wcisnięty 2 raz następna sekcja. I tak do momentu wciśnięcia przycisku nr 13 razy. Za 14 razem LED-y powinny zgasnąć.
Gdy podczas wykoywania instrukcji z przycisku nr1 zostanie wcisnięty przycisk nr 2 lub 3, licznik stanu przycisku nr 1 powinien być zerowany. Gdy ponownie nacisniemy przycisk nr 1 (bo użyto przycisk nr 2 lub nr 3) sekwencja zapaleń LED powinny zaczynać się od zapalenia 1 sekcji, potem 2 itd...
Gdy zostanie wcisnięty przycisk nr 2 jeden raz LEDy będą wykonywać nieskończoną sekwencje "programu_1" (zapalenie jednych zgaszenie drugich LED-ów z opóźnieniami), gdy wcisnę przycisk nr 2 drugi raz odpali się analogicznie jak "program_1", "program_2" (zapalenie jednych, zgaszenie drugich LED-ów z opóźnieniami, innych niż w przypadku "programu_1"). Przycisk nr_2 będzie można wcisnąć powiedzmy 6 razy ("6_programów"). Za 7 wcisnięciem LED-y powinny zgasnąć.
Gdy podczas wykoywania instrukcji z przycisku nr2 zostanie wcisnięty przycisk nr 1 lub 3, licznik stanu przycisku nr 2 powinien być zerowany. Gdy ponownie nacisniemy przycisk nr 2 (bo użyto przycisk nr 1 lub nr 3) sekwencja zapaleń LED powinny zaczynać się od zapalenia LED-ów z "programu_1, potem program_2 itd...
Gdy zostanie wcisnięty przycisk nr 3, LED-y powinny zgasnąć, bez znaczenia czy jest aktywna któraś sekcja z przycisku nr 1 czy nr 2. Bezwarunkowe wyłącznie LED-ów. Gdy zostanie wcisnięty przycisk nr 1 lub nr 2 powinny sie wykonywać instrukcje do poszczególnych przycisków.
Oto co do tej pory udało mi się stworzyć:
Kod: C / C++
Skorzystałem z gotowej biblioteki:
PLIK buttons.c
Kod: C / C++
PLIK buttons.h
Kod: C / C++
A tutaj jest problem:
Instrukcja switch odpowiada, który przycisk został wcisnięty.
Case0 // został wcisniety przycisk 0 (czyli 1)
zwiekszamy licznik przycisku o 1 aby poniżej w pierwszej instrukcji if == 1 wykonała się pierwsza procedura (czyli zapalenie 1 sekcji).
Pierwsza sekcja LED jest uruchomiona. Teraz wciskam przycisk nr 1 , drugi raz.
Gdzie w programie powinno być zwiększenie licznika przycisku nr 1 o jeden, zeby zapaliła sie druga sekcja? Czy w instrukji 1-go if-a? Chodzi o to żeby program sprawdził czy przycisk nr 1 jest drugi raz lub kolejne razy wcisnięty.
Ma ktoś jakiś pomysł?