Dzień dobry Mam problem w temacie podmienienia wierszy w małym programie w C++. Otóż tyczy on czegoś w rodzaju stroboskopu, ale to mało istotne. Dotychczas wybór odstępów pomiędzy mignięciami wybierało się na przełącznikach typu dip switch 'klawiatura'. Pewnie znane każdemu. Jednak wybór innego czasu wymagał powrotu switcha na pozycję 'off', i przesunięcie innego na pozycję 'on'. Chciałem to rozwiązać na enkoderze 0-9 pozycyjnym. Regulowany śrubokrętem, obrotowy. Mój przypadek tyczy egzemplarza, gdzie jeden pin łączy się/nie łączy, z czterema innymi. Działa to jak wiecie binarnie. 0001 0010 0011 itd. Daje to wiele kombinacji. Przechodząc do pytania. Poniższe wiersze wyraźnie mówią o 'załączaniu' kolejnych pinout'ów, co wywołuję reakcję uC który daje tyle i tyle ms:
if (!(PINC & 0x08))// PC3 jezeli przycisk jest wcisniety czas = 7; if (!(PINC & 0x04))// PC2 jezeli przycisk jest wcisniety czas = 14; if (!(PINC & 0x02))// PC1 jezeli przycisk jest wcisniety czas = 21; if (!(PINC & 0x20))// PC5 jezeli przycisk jest wcisniety czas = 28; if (!(PINC & 0x10))// PC4 jezeli przycisk jest wcisniety czas = 35; if (!(PINC & 0x01))// PC0 jezeli przycisk jest wcisniety czas = 42; if (!(PINB & 0x20))// PB5 jezeli przycisk jest wcisniety czas = 49;
Moje pytanie tyczy tego, jak zmienić te wiersze, by jednoczesne wciśnięcie np PC3 i PC2 sprawiło by wywołać przykładowe 10ms. Oczywistym jest też, że samodzielne załączenie PC3(7ms) i samodzielne PC2(14ms), powinno dalej funkcjonować. Dziękuję za ewentualną pomoc.
|