Funkcja pod przycisk??

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
zasepa
-
Posty: 10
Rejestracja: 27 sie 2010, 8:24
Lokalizacja: Częstochowa

Funkcja pod przycisk??

Post autor: zasepa » 26 wrz 2010, 9:55

Witam
Mam taki mały kłopot otóż potrzebuje funkcji która:
W trakcie wciśnięcia przycisku na A1, to zmienna doda 1 zmienną do licznika
A jak przycisk będzie nadal wciśnięty to żeby nie dodawała ciągle zmienne do licznika.
Ja ma taką funkcje lecz w trakcje puszczenia przycisku dodaje zmienną a ja potrzebuje funkcji która w trakcje wciśnięcia przycisku doda zmienną
Proszę o pomoc
Funkcja ma być w języku C dla Atmega 32
Będę bardzo wdzięczny

kaliska5
Użytkownik
Posty: 348
Rejestracja: 01 maja 2008, 8:24
Lokalizacja: z nienacka
Kontakt:

Post autor: kaliska5 » 26 wrz 2010, 11:01

Do tego celu najlepiej użyć przerwania wyzwalanego zboczem

keruseykaryu

Post autor: keruseykaryu » 26 wrz 2010, 12:41

zasepa pisze:A jak przycisk będzie nadal wciśnięty to żeby nie dodawała ciągle zmienne do licznika.
Czekaj aż puści.
zasepa pisze:Ja ma taką funkcje lecz w trakcje puszczenia przycisku dodaje zmienną a ja potrzebuje funkcji która w trakcje wciśnięcia przycisku doda zmienną
Pomyśl i zrób to sam.
Do tego celu najlepiej użyć przerwania wyzwalanego zboczem
Po co tak komplikować?

zasepa
-
Posty: 10
Rejestracja: 27 sie 2010, 8:24
Lokalizacja: Częstochowa

Post autor: zasepa » 26 wrz 2010, 13:04

Myślałem ale nic z tego nie działa

zaba
Użytkownik
Posty: 384
Rejestracja: 27 gru 2009, 19:15
Lokalizacja: Zakliczyn nad dunajcem

Post autor: zaba » 26 wrz 2010, 15:47

Koledzy nie bądźmy tacy, to wyzwolenie może byś powodowane drgającymi stykami należy dodać minimalne opóźnienie przy wciśnięciu i puszczeniu przycisku

keruseykaryu

Post autor: keruseykaryu » 26 wrz 2010, 16:12

Myślałem ale nic z tego nie działa
Proste to jak kilometr nawojowego w kieszeni:
1. Klawisz naciśnięty? Nie - skocz do 6.
2. Zaczekaj parę ms.
3. Klawisz dalej naciśnięty? Nie - skocz do 6.
4. Zwiększ zmienną o jeden.
5. Powtarzaj ten punkt aż klawisz będzie puszczony.
6. Koniec.
Elementarne podstawy pisania programów obsługi klawiszy. Proste warunki: while(), if(), else{}

Laik
Użytkownik
Posty: 242
Rejestracja: 21 maja 2007, 19:19
Lokalizacja: z nienacka

Post autor: Laik » 28 wrz 2010, 16:07

Zobacz przykład:

Kod: Zaznacz cały

while(!(PINB & 0x04)) { 
    
        liczba++;
        _delay_ms(80);
        while(!(PINB & 0x04)) {}
        _delay_ms(80);
        
}

keruseykaryu

Post autor: keruseykaryu » 28 wrz 2010, 20:55

I tak kolega zasepa dostał gotowca i nic się nie nauczył. :cry:

ODPOWIEDZ