Частота: 8 МГц.
Компилятор: AVR GCC
После пробного запуска кода в симуляторе импульс на ножке имеет верхний и нижний участки одинаковой длины, хотя я добиваюсь обратного. Прошу посмотреть код, не могу объяснить ситуацию.
Спасибо.
CODE
#include <avr/io.h>
#include <avr/interrupt.h>
int t = 0x90;
ISR(TIMER0_COMP_vect)
{
if(PINA & 0x01)
{
PORTA &= ~0x01;
OCR0 = 0x90;
}
else
{
PORTA |= 0x01;
OCR0 = 0x0C;
}
TCNT0=0x00;
}
int main(void)
{
DDRA = 0x01;
// Делитель на 1024 (8МГц / 1024 = 7,8125КГц)
// 128 мкс
TCCR0=0x05;
TCNT0=0x00;
//OCR0=0x0C;
TIMSK=0x02;
// Разрешаем прерывания глобально
sei();
while(1)
;
return 0;
}
#include <avr/interrupt.h>
int t = 0x90;
ISR(TIMER0_COMP_vect)
{
if(PINA & 0x01)
{
PORTA &= ~0x01;
OCR0 = 0x90;
}
else
{
PORTA |= 0x01;
OCR0 = 0x0C;
}
TCNT0=0x00;
}
int main(void)
{
DDRA = 0x01;
// Делитель на 1024 (8МГц / 1024 = 7,8125КГц)
// 128 мкс
TCCR0=0x05;
TCNT0=0x00;
//OCR0=0x0C;
TIMSK=0x02;
// Разрешаем прерывания глобально
sei();
while(1)
;
return 0;
}