logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega8 - Jak zapalić wszystkie diody po długim przytrzymaniu przycisku?

Jarosław 1808 11 Maj 2012 18:36 3061 8
REKLAMA
  • #1 10885325
    Jarosław 1808
    Poziom 10  
    Witam...
    Napisałem program do zapalania led.Program ma działać w sposób taki że po każdym naciśnięciu przycisku zapala kolejną diodę a długie przytrzymanie przycisku zapala wszystkie diody.Diody zapalają się kolejno tak jak chciałem, tylko brak mi pomysłów co zrobić ,aby przytrzymanie przycisku spowodowało zapalenie się wszystkich diodek.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 10886893
    Damian_Max
    Poziom 17  
    Witam,
    oto przykład dla jednego przycisku i jednej funkcji:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam, Damian.
  • REKLAMA
  • #4 10891406
    jony15
    Poziom 24  
    Spróbuj tego
    
    #define PIN_MENU	!(PINB&(1<<0)) //minus aktywny 
    
    if(PIN_MENU){
    	time_kl=0;
    	waitms(TIME_AK_MENU);// czekaj ok 50ms
    		while(PIN_MENU){ 
    			time_kl++;
    			waitms(TIME_AK_MENU);
    			see_disp(time_kl);//time_kl na wyswietlacz	
    				//przycisk nacisniety wystarczajaco dlugo
    				if(TIME_INPUT_MENU <= time_kl) //jesli time_kl > 20 2sek
    					menu();
    			}//while pin menu
    	}//if pin menu aktywny
    
    	}
    
  • REKLAMA
  • #5 10891871
    piotrva
    VIP Zasłużony dla elektroda
    Oto fragment mojego kodu z komentarzami, oparty na timerze, ta funkcja powinna być wywoływana w przerwaniu timera:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #6 10908973
    Jarosław 1808
    Poziom 10  
    Witam...
    Próbowałem kompilować kod kol. Damiana ,ale u mnie eror2 proszę o sprawdzenie czy kod się kompiluje,czy może coś u mnie jest nie tak...
  • REKLAMA
  • #7 10908988
    Damian_Max
    Poziom 17  
    To jest tylko część kodu odpowiedzialna za obsługę samego przycisku, by program działał należy dodać pliki nagłówkowe i inicjalizację peryferii. Jeśli chcesz to mogę zapodać kompilujący się gotowy przykład.

    Damian.
  • #8 10909541
    Jarosław 1808
    Poziom 10  
    Dopisałem nagłówki i dalej nic...
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #9 10980146
    Damian_Max
    Poziom 17  
    Witam,

    przepraszam za zwłokę. W załączniku jest skompilowany i kompilujący się program z kilkoma różnymi implementacjami obsługi przycisków typu 'PUSH'. Aby skompilować należy wywołać polecenie 'make' w folderze z plikami.

    Pozdrawiam Damian.
REKLAMA