0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
1 | |
Уменьшение разрядности ШИМ в AVR07.06.2010, 22:21. Показов 9747. Ответов 13
Метки нет (Все метки)
0
|
07.06.2010, 22:21 | |
Ответы с готовыми решениями:
13
AVR ШИМ Шим на микроконтролере avr atmega16 AVR ATmega64 Режимы ШИМ ШИМ 192кгц на AVR - возможно? |
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
|
|
07.06.2010, 22:35 | 2 |
Для Timer1 можно задавать разрядность ШИМа от 2 до 16 бит
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 156
|
|
07.06.2010, 22:43 | 3 |
Можно. Делаешь сброс счетчика не по переполнению, а по OCRA, а по OCRB инвертируешь выход.
При тактовой в 20МГц и частоте 250кГц будет всего 80 позиций регулировки. Т.е. получаешь диапазон регулировки от 0 до 79. Только это возможно не на всех кристаллах и не не всех счетчиках. В режимах генератора ищи те, в кторых TOP прописан не как 0xFF, а как OCRA.
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
08.06.2010, 00:37 | 4 |
Вот есть у меня 3 ШИМ канала и я хочу их по фазе на 90 градусов сдвинуть как эт сделать? чёт не пойму
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 156
|
|
08.06.2010, 04:49 | 5 |
При такой постановке вопроса... Х.З. А там вообще фаза есть?
0
|
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 33
|
|
08.06.2010, 08:29 | 6 |
какой проц?
в меге 128 в даташите на стр 135 табличка есть, оч. удобно подобрать режим мне кажется удобнее для ограничения разрядности использовать не OCR , а ICR регистр для каждого канала
0
|
0 / 0 / 0
Регистрация: 08.05.2010
Сообщений: 332
|
|
08.06.2010, 15:05 | 7 |
Сообщение от Okiofimykmo
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
08.06.2010, 22:46 | 8 |
Вот поставили задачу сварганить 3 канала ШИМ таким образом сдвинутые по фазе между собой
а вот как эт реализавать в непонятках <Изображение удалено>
0
|
0 / 0 / 0
Регистрация: 08.05.2010
Сообщений: 332
|
|
09.06.2010, 01:01 | 9 |
Сообщение от Okiofimykmo
То есть Вам необходимо генерировать три последовательности импульсов фиксированной частоты и длительности с взаимным фиксированным временным сдвигом? Обязательно ли применять генератор ШИМ? Длительность импульсов будет изменяться, или нет? Если длительность импульсов должна модулироваться по какому-то закону, как это должно отражаться на временном сдвиге? И одинакова-ли модуляция по разным каналам?
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
09.06.2010, 01:33 | 10 |
Самое главное чтобы сдвиг между фазами был ~0.5 мкс (но с возможностью регулировки желательно!)
частота фиксированная порядка 150 Кгц Длительность самих импульсов меняться не должна только сдвиг! Можно и без ШИМ так как скважность будет всегда одна и таже
0
|
0 / 0 / 0
Регистрация: 08.05.2010
Сообщений: 332
|
|
09.06.2010, 14:59 | 11 |
Сообщение от Okiofimykmo
Например, вы настраиваете таймер на генерацию запросов прерываний через 1/150000 (примерно 6,7 мкс). В подпрограмме обслуживания прерывания запускаете чтение таблицы из памяти программ и выводите в соответствующий порт содержимое очередных ячеек таблицы. (При реализации устройства на МК типа AVR) Что-то вроде: |Timer_overflow Tabl*2 -> Z 30 -> Count - необходимое количество ячеек таблицы. И далее сколько нужно раз (я предположил, что достаточно 30) Вы считываете байты из таблицы с помощью команды LPM (Z++) ->Rn и отправляете в нужный порт: Rn -> PortN. Естественно, нужно выбрать максимально возможную тактовую частоту МК. (Если нужно повысить временное разрешение, нужно отказаться от организации цикла и "влоб" считывать программно все ячейки таблицы до ячейки, содержащей все нули) А таблица должна содержать единицы там где должны быть единица на выходе и нули там, где единицы быть не должны. Например, если импульсы генерируются на трех младших битах порта, таблица будет что-то вроде: 00000001 00000001 00000001 00000001 - Допустим теперь должна появиться вторая фаза: 00000011 00000011 - Допустим теперь первая фаза должна пропасть: 00000010 00000010 - Допустим теперь должна появиться третья фаза: 00000110 00000110 00000110 - Теперь вторая фаза должна пропасть 00000100 00000100 00000100 Теперь и третья фаза должна пропасть 00000000 - Конец таблицы Далее выход из подпрограммы обслуживания прерывания. И так далее и тому подобное! :-))) Длительность импульсов и сдвиг определяются содержимым таблицы. Так что могут произвольно меняться.
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
10.06.2010, 00:19 | 12 |
Спасибо! В общем приблизительно получилось то что хотел
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
10.06.2010, 18:52 | 13 |
Вот как бы терь перекрытия на лету изменять.......допустим с пульта?
0
|
0 / 0 / 0
Регистрация: 08.05.2010
Сообщений: 332
|
|
10.06.2010, 19:53 | 14 |
Сообщение от Okiofimykmo
0
|
10.06.2010, 19:53 | |
10.06.2010, 19:53 | |
Помогаю со студенческими работами здесь
14
ШИМ на ATMega64 со скважностью 3. В программе AVR Studio Как сделать нулевой ШИМ сигнал на avr Как повлияет уменьшение разрядности мантиссы (вещественного типа данных) на величины машинных констант? Простой частотомер-измеритель коэффициента заполнения и девиации коэффициента заполнения ШИМ на AVR Dell Vostro 3560 (LA-8241P) - Не включался, после замены шим сдохла и шим и ещё что-то Плавное уменьшение img с уменьшение блока (адаптивно) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |