Таймеры/счётчики в AVR
Re: Таймеры/счётчики в AVR
Лучше использовать ШИМ
Re: Таймеры/счётчики в AVR
да, это я понимаю.. Нужно использовать ШИМ. Но при разводке схемы порт B занят другими делами.. или можно обойти физическую привязку к портам при реализации шим?
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Таймеры/счётчики в AVR
Нет, ноги закреплены железно.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Таймеры/счётчики в AVR
alexan9er писал(а):Лучше использовать ШИМ
В рамках поставленной задачи ШИМ лучше не использовать. CTC наше все.
Re: Таймеры/счётчики в AVR
CTC замечательный режим, но не все AVR-камни поддерживают его в T0. Зачем-то включен предделитель на 1024. С ним получить полупериод 50мкс будет затруднительно. Устанавливаете вроде Т1, а начальное значение в Т0.
Re: Таймеры/счётчики в AVR
Хорошо бы тогда вопрошавший уточнил, о каком МК идет речь.
Re: Таймеры/счётчики в AVR
Прошу прощение за неточные данные. Использую ATMega324P. Таймер T1 занят другими вычислениями.
Re: Таймеры/счётчики в AVR
А можно сделать отдельный генератор частоты на кварце а ножкой МК его только включать. Такой вариант не пойдёт?
Re: Таймеры/счётчики в AVR
alexan9er писал(а):А можно сделать отдельный генератор частоты на кварце а ножкой МК его только включать. Такой вариант не пойдёт?
Кварц отдельный есть 10 МГц. Это программно реализуется или нужны изменения в схеме?
Re: Таймеры/счётчики в AVR
Нужны изменения. Нужно сделать сам генератор который будет давать нужную частоту.
Re: Таймеры/счётчики в AVR
alexan9er писал(а):Нужны изменения. Нужно сделать сам генератор который будет давать нужную частоту.
к сожелению такое не подойдет.
Re: Таймеры/счётчики в AVR
Так вывод OC0A свободен в вашей схеме? Если да, то аппаратную генерацию можно сделать на нем. Если нет, то тогда дрыгать какой-то другой ногой придется из прерывания. Первый вариант лучше. Если с ним никак, то укажите точно ногу, я код покажу.
Re: Таймеры/счётчики в AVR
a5021 писал(а):Так вывод OC0A свободен в вашей схеме? Если да, то аппаратную генерацию можно сделать на нем. Если нет, то тогда дрыгать какой-то другой ногой придется из прерывания. Первый вариант лучше. Если с ним никак, то укажите точно ногу, я код покажу.
Нет этот вывод занят. По схеме сделали так, что дрыгать нужно 5 ногой, Порта А.(PINA.5). Буду благодарен за помощь!
Re: Таймеры/счётчики в AVR
Не знаю, как в Цэ это будет выглядеть
DDRA=1<<PA5
Fo=10000000
OCR0A< 50*Fo/8/1000000
TIMSK0<-OCIE0A
TIFR0<-OCF0A
TCCR0A<WGM01
TCCR0B<CS01
В обработчике
SBI PINA,5
DDRA=1<<PA5
Fo=10000000
OCR0A< 50*Fo/8/1000000
TIMSK0<-OCIE0A
TIFR0<-OCF0A
TCCR0A<WGM01
TCCR0B<CS01
В обработчике
SBI PINA,5
Re: Таймеры/счётчики в AVR
Подразумевается, что МК тактируется от кварца 16Мгц. Если это не так, то потребуется пересчитывать установки таймера.
Это код сгенеренный с помощью визарда кодевижена:
Прерывание случается каждые 50мкс. Обработчик прерывания каждый раз меняет состояние пина PORTA5 на противоположное, что в общем итоге приводит к генерации на нем сигнала с частотой 10кгц.
Это код сгенеренный с помощью визарда кодевижена:
Код: Выделить всё
// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void) {
PORTA ^= (1<<PORTA5);
}
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 2000,000 kHz
// Mode: CTC top=OCR0A
// OC0A output: Disconnected
// OC0B output: Disconnected
// Timer Period: 0,05 ms
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (0<<WGM00);
TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (0<<CS00);
TCNT0=0x00;
OCR0A=0x63;
OCR0B=0x00;
// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=(0<<OCIE0B) | (1<<OCIE0A) | (0<<TOIE0);
Прерывание случается каждые 50мкс. Обработчик прерывания каждый раз меняет состояние пина PORTA5 на противоположное, что в общем итоге приводит к генерации на нем сигнала с частотой 10кгц.
Re: Таймеры/счётчики в AVR
Здравствуйте господа! может я не в тему.
Подскажите пожалуйста. Какой режим таймера T1 и T2 оптимальнее использовать для получения прямоугольных импульсов?
Чтоб легко было менять период и частоту этих импульсов.
Частота, которую можно получить на ножке определяется по формуле из даташита:
Focn — частота, с которой должна дрыгаться ножка;
Fclk — частота таймера;
N — частота предделителя таймера;
OCRn — значение регистра сравнения;
Подскажите пожалуйста. Какой режим таймера T1 и T2 оптимальнее использовать для получения прямоугольных импульсов?
Чтоб легко было менять период и частоту этих импульсов.
Частота, которую можно получить на ножке определяется по формуле из даташита:
Focn — частота, с которой должна дрыгаться ножка;
Fclk — частота таймера;
N — частота предделителя таймера;
OCRn — значение регистра сравнения;
- Вложения
-
- lesson17.png
- (2.22 КБ) 327 скачиваний
Re: Таймеры/счётчики в AVR
Период импульсов и частота импульсов обратнозависимые величины. Если по периодом подразумевалось длительность, то у таймеров есть режимы PWM. Они достаточно подробно описаны в DS.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Таймеры/счётчики в AVR
ну так вроде бы в даташите даже в отдельную главу выделен соответствующий режим Phase and Frequency Correct PWM Mode, откуда формула и взята. с чего вопросы?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Таймеры/счётчики в AVR
А для управления 8-и разрядным сдвиговым регистром типа 74HC4094D
Там три управляющие ноги. Стробирующий, тактовый и последующий входы
Какой режим таймера T1 и T2 лудше использовать для управления этими ногами?
Чтоб можно было потом легко перестраивать такт и т.д.
Не судите строго только щупаю сдвиговые регистры.
Там три управляющие ноги. Стробирующий, тактовый и последующий входы
Какой режим таймера T1 и T2 лудше использовать для управления этими ногами?
Чтоб можно было потом легко перестраивать такт и т.д.
Не судите строго только щупаю сдвиговые регистры.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Таймеры/счётчики в AVR
А зачем там вообще таймеры? Там SPI нужен, или просто ногами дёргать.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]