Potrzebuję ogólnej porady jak zrobić coś takiego:
- główny program robi coś tam w pętli, która trwa około 0,1s
- przycisk generuje przerwanie INT0, obsługa przerwania jest bardzo krótka (np. tylko zapalenie/zgaszenie LED-a)
- dłuższe naciskanie przycisku nie powoduje kolejnego przerwania, dopiero następne przyciśnięcie
Mam problem z punktem 3. Na wyjściu procedury obsługi INT0 blokuję przerwania, ale w "głównej pętli" muszę je odblokować, i w tym momencie znowu pojawia się przerwanie, jeśli przycisk jest cały czas wciśnięty. Czy jest jakiś "standardowy" sposób obsługi czegoś takiego, może jakiś przykładowy programik (w asemblerze)?
I druga sprawa, związana z przyciskami:
- jak wykrywać długie naciśnięcie przycisku (np. pół sekundy, chcę coś włączać/wyłączać poprzez dłuższe naciśnięcie guzika, żeby nie włączało się przypadkowo w kieszeni)
- jak wykrywać "podwójne kliknięcie"?
Paweł