Skocz do zawartości

[C] Opóźnienie włączenia


matt90

Pomocna odpowiedź

Mam układ który załączam przyciskiem, przycisk jest w przerwaniu, jak można napisać żeby po naciśnięciu mijało 6sek, nim zacznie działać? Pętla główna jest na warunku if od przycisku, czyli jak wcisnę to wykonuje się, delay nie działa, bo jakoś dziwnie wszystko działa...

__________

Komentarz dodany przez: Sabre

Nie rozumiem po co zakładasz kolejny temat? Masz już jeden dotyczący obsługi przycisku.

Link do komentarza
Share on other sites

Przerwania mogą być czasowe lub zmiany stanu na pinie. Zastosuj oba. Czyli:

- w przypadku naciśnięcia przycisku zapisujesz aktualną wartość przerwania czasowego-

- w pętli głównej sprawdzasz / w przerwaniu czasowym sprawdzasz kiedy wartość_aktualna - wartość_zapisana = 6sec .

- musisz pamiętać o tym, że w kodzie to nie będzie takie proste odejmowanie, gdyż musisz wziąć pod uwagę, że:

-- przerwanie na czas 6s to trochę dużo

-- po pewnej wartości licznik w przerwaniu czasowym się zeruje i leci od nowa

Nie będę dokładnie wszystkiego opisywał, bo musisz mieć wiedzę na temat tych przerwań. Dopiero wtedy zadaj konkretniejsze pytanie.

Pozdrawiam

Link do komentarza
Share on other sites

Dla mnie nie ma znaczenie czas włączenia, chodzi o to żeby cały układ wystartował po 5sek. po naciśnięciu przycisku. Moja obsługa przerwania od przycisku wyglada tak:

ISR (INT0_vect)
{
if(b)
{
	b=0;
}	
else b=1;
}

oraz obsługa w głównej pętli programu:

int main(void)
{ 
//wejscia, wyjscia
while(1)
{
	sei();
	if (b)
	{
                 //program
      }
        }
}


Link do komentarza
Share on other sites

Do realizacji twoich założeń najłatwiej wykorzystać timer sprzętowy. Oczywiście timer nie doliczy Ci do 6 sek dlatego musisz zliczać ile razy się on przeładował i wtedy napisać instrukcje warunkowa w przerwaniu która zacznie proces startu robota po osiągnięciu odpowiedniej wartości.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.