Witam.
Mam kolejny problem tym razem z przerwaniami napisałem taki program żeby to wszystko przetestować ale kompilator wysypuje
WAJH.c:17: error: `TICIE1' undeclared (first use in this function)
WAJH.c:17: error: (Each undeclared identifier is reported only once
WAJH.c:17: error: for each function it appears in.)
WAJH.c:24:2: warning: no newline at end of file
z dokumentacji wynika ze to jest bit 3 wiec gdy zrobie
TIMSK=1<<3;
kompiluje sie ale znowu w symulatorze(avrstudio) gdy symuluje przerwanie
okazuje sie ze licznik stoi w miejscu i zakażdym razem taką tesz wartośc pokazuje
naprawia sie to gdy wykasuje linijke TCCR1B=1<<ICES1; zaczyna hulac ale trace znów możliwośc ustawienia zbocza kto mi odpowie dlaczego tak sie dzieje z
1. TICIE1
2. zatrzymanym licznikiem gdy ustawione jest zbocze.
[ Dodano: 13-08-2005, 23:14 ]
#include <avr\io.h>
#include <avr\signal.h>
#include <avr\interrupt.h>
int main(void)
{
DDRB = 0;
PORTB = 0;
DDRB = 0;
PORTB = 0;
TCCR1B=3;//presc 8
TCNT1=49911;
TCCR1B=1<<ICES1;
TIMSK=1<<TICIE1;//POZWOLENIE NA PRZERWANIE W WYNIKU PRZECHWYCENIa
sei();
while(1);
}
SIGNAL(SIG_INPUT_CAPTURE1)
{PORTB = 0xFF;
}
[ Dodano: 15-08-2005, 12:58 ]
Jusz sobie poradziłęm
Temat zamknięty
przerw. od przechwycenia AVR
TCCR1B=3;//presc 8
TCNT1=49911;
TCCR1B=1<<ICES1;// wybranie zbocza i jednocześnie wyłączenie licznika!!!
Jeśli powyższy opis nie pomaga, napiszę bardziej dosadnie:
Albo
- po ponownym przeczytaniu swojej wypowiedzi dodaję uśmieszek. Nie chciałem aby całość brzmiała złośliwie i proszę tego tak nie odbierać. Takiej formie zawinił pośpiech
Pozdrawiam
TCNT1=49911;
TCCR1B=1<<ICES1;// wybranie zbocza i jednocześnie wyłączenie licznika!!!
Jeśli powyższy opis nie pomaga, napiszę bardziej dosadnie:
Kod: Zaznacz cały
TCNT1=49911;
TCCR1B=1<<ICES1 | 3; // !!!
Kod: Zaznacz cały
TCCR1B=3;//presc 8
TCNT1=49911;
TCCR1B|=1<<ICES1;// !!!
Pozdrawiam