Как в МК attiny13 подать на ногу 30кГц?

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Как в МК attiny13 подать на ногу 30кГц?

Сообщение RoboTok » 18 фев 2008, 21:08

Тогда ещё хитрый вопрос.

Есть МК attiny13.

Нужно подать на ножку МК несущую частоту 30кГц.

По идее мне нужно настроить прерывания на частоту 60кГц, чтоб каждое прерывание изменять состояние на ноге МК.

Код настройки таймера на 60кГц, частоту МК 4.8МГц
Код: Выделить всё
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 4800,000 kHz
// Mode: CTC top=OCR0A
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x02;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=39;//
OCR0B=0x00;


Код который дёргает ноги:
Код: Выделить всё
// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
PORTB.0++;
}


Правильно ли я настроил ?
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: VMLAB vs PROTEUS ?

Сообщение RoboTok » 19 фев 2008, 13:43

Только, что то частота на ножке выходит странная не та которую я ожидаю.

Настроил таймер так:
Код: Выделить всё
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 4800,000 kHz
// Mode: CTC top=OCR2
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x09;
TCNT2=0x00;
OCR2=79;


И в прерывании меняю состояние ног:
Код: Выделить всё
// Timer 2 output compare interrupt service routine
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
// Place your code here
PORTD.0++;
}


По идее должно быть 15кГц, а выводит 30кГц, как так ?

П.С.
Считаю по формуле:
Тогда по формуле OCR: OCR = Fcl/Foc*2*N - 1, где N делитель таймера, Fcl частота таймера, Foc частота прерываний.

Все поправил. Теперь будь внимательнее с личными сообщениями и постами в разные темы :)
<Digit>
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 17

cron