vasya_zh (07.06.2011 23:59, просмотров: 1631)
atmega88 не работает FOC1A Код:
unsigned int duration = 2500;
unsigned int freq_temp = 10000;
ISR(SIG_OUTPUT_COMPARE1B)
{
TCCR1C = (1 << FOC1A);
}
// ***********************************************************
// Main program
//
int main(void) {
DDRB = 0xFF;
PORTB = 0xFF;
PORTB = 0;
asm("sei");
TIMSK1 = (1<<OCIE1B);
OCR1B = duration;
OCR1A = freq_temp;
TCCR1A = 0b01000000;
TCCR1B = 0b00001001;
while(1);
}
частота 20Мгц
вывод OC1A настроен на изменение уровня при прерывании. Запись единицы в FOC1A ничего не дает(
Как заставить его работать? (при равенстве OCR1A - нарастающий фронт на выходе OC1A, при равенстве OCR1B - убывающий (Вручную дергать пин не предлагать - медленно))