Спойлер
Код: Выделить всё
#define F_CPU 8000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
unsigned char Coef = 100;
unsigned char B = 100;
ISR(TIM0_COMPA_vect) {
TCCR0B|=(0<<CS00)|(0<<CS02); // îñòàíîâèòü.
PORTA |= 0x02;
}
ISR(INT0_vect) {
PORTA &= ~0x02;
TCCR0B|=(1<<CS00)|(1<<CS02); // Äåëèòü ÷àñòîòó íà 1024.
}
int main (void){
// Crystal Oscillator division factor: 1
CLKPR=(1<<CLKPCE);
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
GIMSK |= (1<<INT0);
MCUCR = (0<<ISC01) | (1<<ISC00); //i'a`n~o`?i^e`e"e`n~u"
GIFR=(1<<INTF0) | (0<<PCIF1) | (0<<PCIF0);
TCCR0B|=(0<<CS00)|(0<<CS02); // îñòàíîâèòü.
TIMSK|=(1<<OCIE0A); // Ðàçðåøèòü ïðåðûâàíèå ïî ñîâïàäåíèþ.
DDRA = 0xFF;
OCR0A = 156;
sei();
while (1){
_delay_ms(1000);
PORTA |= 0x10;
_delay_ms(1000);
PORTA &= ~0x10;
}
return 0;
}Пытаюсь сделать типа диммер. Т.е. он принимает сигнал о переходе фазы через ноль. Запускает таймер на совпадение и потом должен таймер сработать и на 2 пин вывести высокий уровень. При следующем переходе через 0 ставится низкий уровень и снова таймер. Что не так? Компилятор говорит что-то непонятное:
Спойлер
../Test.c: In function 'main':../Test.c:29: error: 'TIMSK' undeclared (first use in this function)
../Test.c:29: error: (Each undeclared identifier is reported only once
../Test.c:29: error: for each function it appears in.)
make: *** [Test.o] Error 1
Build failed with 3 errors and 0 warnings...


