Страница 338 из 421
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт июн 02, 2015 09:01:50
ChipKiller
DC_DC писал(а):Например я выставляю в мастере частоту ШИМа на 125 Кгц. а вместо этого у меня на выходе на много меньше
...по умолчанию (с завода) Tiny2313 работает на частоте 1МГц. Для работы на 8МГц надо снять бит CLKDIV8 в FUSE Bit
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт июн 02, 2015 09:24:24
WiseLord
DC_DC писал(а):Даже вот когда я выставляю частоту без делителя то вместо 8 Мгц у меня всего лишь около 31 Кгц.
8000000/256=31250.
Это теоретический максимум частоты ШИМ при работе МК на 8МГц.
Частота тактирования таймера, используемого для ШИМ, и частота самих импульсов ШИМ - это разные вещи, отличающиеся в 256 раз (разрядность таймера, предоставляющего ШИМ).
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт июн 02, 2015 16:09:36
DC_DC
ChipKiller писал(а):DC_DC писал(а):Например я выставляю в мастере частоту ШИМа на 125 Кгц. а вместо этого у меня на выходе на много меньше
...по умолчанию (с завода) Tiny2313 работает на частоте 1МГц. Для работы на 8МГц надо снять бит CLKDIV8 в FUSE Bit
Нет фьюзы выставлены на 8 MHz от внутреннего RC-генератора.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт июн 02, 2015 16:25:06
DC_DC
WiseLord писал(а):DC_DC писал(а):Даже вот когда я выставляю частоту без делителя то вместо 8 Мгц у меня всего лишь около 31 Кгц.
8000000/256=31250.
Это теоретический максимум частоты ШИМ при работе МК на 8МГц.
Частота тактирования таймера, используемого для ШИМ, и частота самих импульсов ШИМ - это разные вещи, отличающиеся в 256 раз (разрядность таймера, предоставляющего ШИМ).
Ааа, вон оно чего, тогда всё понятно. Значит чтоб выжать по больше из ШИМа нужно таймер с меньшей разрядностью? Или я глубоко заблуждаюсь?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт июн 02, 2015 16:26:45
DC_DC
prw07 писал(а):а вместо этого у меня на выходе на много меньше
а где это видно? в смысле симулятор показывает или готовое устройство?
Да это в реальном устройстве.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт июн 02, 2015 17:36:20
WiseLord
DC_DC писал(а):Значит чтоб выжать по больше из ШИМа нужно таймер с меньшей разрядностью? Или я глубоко заблуждаюсь?
По сути - да. Но даже имейся в AVR таймер меньшей разрядности (например, 4), Вы бы получили частоту ШИМ 8МГц / 16 = 500кГц, но процент заполнения ШИМ (скважность) был бы доступен в количестве лишь 16 шагов, а не 256, как в обычном случае.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт июн 02, 2015 17:39:11
oleg110592
выжать по больше из ШИМа
можно взять другой микроконтроллер, например tiny261 - в нем есть PLL. Частоту тактирования таймера 1 можно сделать равной 64МГц, следовательно частота восьмибитного шима будет равна 250кГц
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт июн 02, 2015 17:53:09
DC_DC
oleg110592 писал(а):выжать по больше из ШИМа
можно взять другой микроконтроллер, например tiny261 - в нем есть PLL. Частоту тактирования таймера 1 можно сделать равной 64МГц, следовательно частота восьмибитного шима будет равна 250кГц
Вот это весчь. Даже с DeadTime- Надо будет попробовать. Спасибо.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 09:21:55
dm211
Вот вроде бы простой вопрос, но не сооброжу никак-внешнее прерывание-
Код: Выделить всё
interrupt [EXT_INT0] void ext_int0_isr(void)
{
x=1;
}
как сбросить на ноль х после окончания прерывания?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 09:50:12
Gudd-Head
А зачем тогда присваивать "1"?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 10:15:43
dm211
Для этого- if(x)-что то делать
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 10:51:10
Gudd-Head
Загадками говорите. Думаете, так кто-то поможет?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 11:04:06
dm211
Внутри обработчика прерывания таймера что то делается, когда наступает внешнее прерывание, это что то должно приостанавливаться, после окнчания внешнего прервания должно заработать.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 12:12:36
ChipKiller
dm211 писал(а):когда наступает внешнее прерывание, это что то должно приостанавливаться, после окнчания внешнего прервания должно заработать.
..любое прерывание так и работает - останавливает программу в момент возникновения и продолжает ее работу, после выхода из него...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 12:20:17
dm211
А вот без этого условия(if (x)) код внутри таймера продолжает работать, внешнее прерывание не останавливает его.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 12:23:19
ChipKiller
dm211 - весь код покажите и что надо сделать доступными словами, а иначе к экстрасенсам...
зы. ... возможно угадаю - работа в WinAVR и переменная x не объявлена как volatile.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 12:55:56
dm211
Ну тема по CVAVR вообще то, вот код и протеус, требуется, чтобы после отжатия кнопки ШИМ опять заработал.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 13:47:20
ChipKiller
dm211 писал(а):чтобы после отжатия кнопки ШИМ опять заработал.
... так он и работает. В чем проблема?
Если "правильный" вопрос звучит так - как сделать так , чтобы генерация ШИМ останавливалась при нажатии и восстанавливалась при отпускании кнопки, то можно просто выключать/включать таймер и все...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 13:52:41
Gudd-Head
ChipKiller писал(а):можно просто выключать/включать таймер и все...
А ноги ШИМ контроллера в каком стостоянии тогда будут? Как повезёт?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср июн 03, 2015 13:56:34
ChipKiller
Gudd-Head писал(а):А ноги ШИМ контроллера в каком стостоянии тогда будут? Как повезёт?
.. можно переключить в любое состояние, но об этом у ТС как раз ни звука

... поэтому ждем "правильный вопрос" ....