Skocz do zawartości

Przerwanie wewnętrzne w zewnętrznym - jak wpisać


bluzman

Pomocna odpowiedź

Witam. Chciałbym w programie z przerwaniem uzyskać następujący efekt żeby nie używać delaya:
1. Wywołuję przerwanie przyciskiem
2. W przerwaniu jest odmierzany czas przez Timer w Atmega8 i po np. 1 sekundzie przerwanie się kończy i przechodzi do programu głównego.

Rozumiem że należy umieścić przerwanie wewnętrzne w zewnętrznym. Jak napiszę 2 przerwania pod sobą, pod programem głównym to po odpaleniu qC to co 1 s. będzie się włączało i wyłączało?
Jak to ogarnąć już w kodzie takim jak poniżej bo gdzieś trzeba ten timer przerwania (np. TIMER1_OVF_vect) umieścić. Dziękuję z góry:)

#include <stdio.h>
#include <avr/interrupt.h>

#define SWITCH (1<<PD3)

int main(void) {
	//inicjalizacja przerwania - przycisk
	MCUCR	 |= (1<<ISC10);
	GICR 	 |= (1<<INT1);

	//Timer1
	TCCR1B |= (1 << WGM12);
	TCCR1B |= (1 << CS12);
	OCR1A = 31250;
	TIMSK |= (1 << OCIE1A); 

    DDRD &= ~(SWITCH);
    PORTD |= (SWITCH);

    sei();
    while (1) { }
    	//kod programu
}

ISR(INT1_vect) {
	while(1) {
		//kod programu w przerwaniu
	}

}

 

Link do komentarza
Share on other sites

12 minut temu, bluzman napisał:

Wywołuję przerwanie przyciskiem

To zły pomysł.

13 minut temu, bluzman napisał:

W przerwaniu jest odmierzany czas przez Timer w Atmega8 i po np. 1 sekundzie..

A to najgorsze co mogłeś wymyślić.

Takie rzeczy robi sie zupełnie inaczej, koniecznie poczytaj o tym jak w Arduino zrobić wiele rzeczy na raz. A przerwania sprzętowe zostaw na ważniejsze i szybsze rzeczy niż jakiś przycisk. 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.