CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: CodeVision AVR в вопросах и ответах

Сообщение ChipKiller »

DC_DC писал(а):Например я выставляю в мастере частоту ШИМа на 125 Кгц. а вместо этого у меня на выходе на много меньше
...по умолчанию (с завода) Tiny2313 работает на частоте 1МГц. Для работы на 8МГц надо снять бит CLKDIV8 в FUSE Bit
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение WiseLord »

DC_DC писал(а):Даже вот когда я выставляю частоту без делителя то вместо 8 Мгц у меня всего лишь около 31 Кгц.
8000000/256=31250.
Это теоретический максимум частоты ШИМ при работе МК на 8МГц.
Частота тактирования таймера, используемого для ШИМ, и частота самих импульсов ШИМ - это разные вещи, отличающиеся в 256 раз (разрядность таймера, предоставляющего ШИМ).
DC_DC
Родился
Сообщения: 8
Зарегистрирован: Вс окт 05, 2014 21:11:48

Re: CodeVision AVR в вопросах и ответах

Сообщение DC_DC »

ChipKiller писал(а):
DC_DC писал(а):Например я выставляю в мастере частоту ШИМа на 125 Кгц. а вместо этого у меня на выходе на много меньше
...по умолчанию (с завода) Tiny2313 работает на частоте 1МГц. Для работы на 8МГц надо снять бит CLKDIV8 в FUSE Bit

Нет фьюзы выставлены на 8 MHz от внутреннего RC-генератора.
DC_DC
Родился
Сообщения: 8
Зарегистрирован: Вс окт 05, 2014 21:11:48

Re: CodeVision AVR в вопросах и ответах

Сообщение DC_DC »

WiseLord писал(а):
DC_DC писал(а):Даже вот когда я выставляю частоту без делителя то вместо 8 Мгц у меня всего лишь около 31 Кгц.
8000000/256=31250.
Это теоретический максимум частоты ШИМ при работе МК на 8МГц.
Частота тактирования таймера, используемого для ШИМ, и частота самих импульсов ШИМ - это разные вещи, отличающиеся в 256 раз (разрядность таймера, предоставляющего ШИМ).

Ааа, вон оно чего, тогда всё понятно. Значит чтоб выжать по больше из ШИМа нужно таймер с меньшей разрядностью? Или я глубоко заблуждаюсь?
DC_DC
Родился
Сообщения: 8
Зарегистрирован: Вс окт 05, 2014 21:11:48

Re: CodeVision AVR в вопросах и ответах

Сообщение DC_DC »

prw07 писал(а):
а вместо этого у меня на выходе на много меньше
а где это видно? в смысле симулятор показывает или готовое устройство?

Да это в реальном устройстве.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение WiseLord »

DC_DC писал(а):Значит чтоб выжать по больше из ШИМа нужно таймер с меньшей разрядностью? Или я глубоко заблуждаюсь?
По сути - да. Но даже имейся в AVR таймер меньшей разрядности (например, 4), Вы бы получили частоту ШИМ 8МГц / 16 = 500кГц, но процент заполнения ШИМ (скважность) был бы доступен в количестве лишь 16 шагов, а не 256, как в обычном случае.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: CodeVision AVR в вопросах и ответах

Сообщение oleg110592 »

выжать по больше из ШИМа

можно взять другой микроконтроллер, например tiny261 - в нем есть PLL. Частоту тактирования таймера 1 можно сделать равной 64МГц, следовательно частота восьмибитного шима будет равна 250кГц
DC_DC
Родился
Сообщения: 8
Зарегистрирован: Вс окт 05, 2014 21:11:48

Re: CodeVision AVR в вопросах и ответах

Сообщение DC_DC »

oleg110592 писал(а):
выжать по больше из ШИМа

можно взять другой микроконтроллер, например tiny261 - в нем есть PLL. Частоту тактирования таймера 1 можно сделать равной 64МГц, следовательно частота восьмибитного шима будет равна 250кГц

Вот это весчь. Даже с DeadTime- Надо будет попробовать. Спасибо.
dm211
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Re: CodeVision AVR в вопросах и ответах

Сообщение dm211 »

Вот вроде бы простой вопрос, но не сооброжу никак-внешнее прерывание-

Код: Выделить всё

interrupt [EXT_INT0] void ext_int0_isr(void)
{
x=1;   
}

как сбросить на ноль х после окончания прерывания?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: CodeVision AVR в вопросах и ответах

Сообщение Gudd-Head »

А зачем тогда присваивать "1"?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
dm211
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Re: CodeVision AVR в вопросах и ответах

Сообщение dm211 »

Для этого- if(x)-что то делать
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: CodeVision AVR в вопросах и ответах

Сообщение Gudd-Head »

Загадками говорите. Думаете, так кто-то поможет?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
dm211
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Re: CodeVision AVR в вопросах и ответах

Сообщение dm211 »

Внутри обработчика прерывания таймера что то делается, когда наступает внешнее прерывание, это что то должно приостанавливаться, после окнчания внешнего прервания должно заработать.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: CodeVision AVR в вопросах и ответах

Сообщение ChipKiller »

dm211 писал(а):когда наступает внешнее прерывание, это что то должно приостанавливаться, после окнчания внешнего прервания должно заработать.
..любое прерывание так и работает - останавливает программу в момент возникновения и продолжает ее работу, после выхода из него...
dm211
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Re: CodeVision AVR в вопросах и ответах

Сообщение dm211 »

А вот без этого условия(if (x)) код внутри таймера продолжает работать, внешнее прерывание не останавливает его.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: CodeVision AVR в вопросах и ответах

Сообщение ChipKiller »

dm211 - весь код покажите и что надо сделать доступными словами, а иначе к экстрасенсам...

зы. ... возможно угадаю - работа в WinAVR и переменная x не объявлена как volatile.
dm211
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Re: CodeVision AVR в вопросах и ответах

Сообщение dm211 »

Ну тема по CVAVR вообще то, вот код и протеус, требуется, чтобы после отжатия кнопки ШИМ опять заработал.
Вложения
пример.rar
(29.29 КБ) 125 скачиваний
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: CodeVision AVR в вопросах и ответах

Сообщение ChipKiller »

dm211 писал(а):чтобы после отжатия кнопки ШИМ опять заработал.
... так он и работает. В чем проблема?
Если "правильный" вопрос звучит так - как сделать так , чтобы генерация ШИМ останавливалась при нажатии и восстанавливалась при отпускании кнопки, то можно просто выключать/включать таймер и все...
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: CodeVision AVR в вопросах и ответах

Сообщение Gudd-Head »

ChipKiller писал(а):можно просто выключать/включать таймер и все...
А ноги ШИМ контроллера в каком стостоянии тогда будут? Как повезёт?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: CodeVision AVR в вопросах и ответах

Сообщение ChipKiller »

Gudd-Head писал(а):А ноги ШИМ контроллера в каком стостоянии тогда будут? Как повезёт?
.. можно переключить в любое состояние, но об этом у ТС как раз ни звука :) ... поэтому ждем "правильный вопрос" ....
Ответить

Вернуться в «AVR»