Форум РадиоКот https://radiokot.ru/forum/ |
|
ATmega16a ШИМ и частота https://radiokot.ru/forum/viewtopic.php?f=20&t=75724 |
Страница 1 из 1 |
Автор: | sx386 [ Чт июл 19, 2012 19:01:00 ] |
Заголовок сообщения: | ATmega16a ШИМ и частота |
Значениями (0<<CS12)|(0<<CS11)|(1<<CS10) задаю минимально возможный делитель. Как можно увеличить частоту импульсов в 10 раз ? Код: .macro eout ldi ram23, @1 out @0,ram23 .endmacro Код: eout TCCR1B, 0x00; //stop Timer
eout TCNT1H, 0xFC; // 11111100 eout TCNT1L, 0x01; // 00000001 /* значение в 16 битном регистре OCR1A определяет величину генерируемого ШИМ сигнала на ножке PD5 // Скважность 50% eout OCR1AH , 0x01; eout OCR1AL , 0xff; /* регистр OCR1A состоит из двух 8-ми битных регистров OCR1AH и OCR1AL запись в них нужно проводить в указанной последовательности! */ eout OCR1BH , 0x03; eout OCR1BL , 0xFF; eout ICR1H , 0x03; eout ICR1L , 0xFF; eout TCCR1A , 0x83; // 10000011 eout TCCR1B , (1<<CTC1)|(0<<CS12)|(0<<CS11)|(1<<CS10); // 00001001 - start Timer |
Автор: | Engineer_Keen [ Чт июл 19, 2012 20:29:19 ] |
Заголовок сообщения: | Re: ATmega16a ШИМ и частота |
Взять кварц в 10 раз больше, иначе никак. Можно сделать программно-аппаратно, но за счет уменьшения разрядности. |
Автор: | sx386 [ Чт июл 19, 2012 20:37:39 ] |
Заголовок сообщения: | Re: ATmega16a ШИМ и частота |
Engineer_Keen писал(а): Можно сделать программно-аппаратно, но за счет уменьшения разрядности. А как именно ? |
Автор: | Engineer_Keen [ Чт июл 19, 2012 22:07:09 ] |
Заголовок сообщения: | Re: ATmega16a ШИМ и частота |
Задействовать режим CTC, тогда верхним пределом будет не 0xFFFF, а число в OCR1A, т.е. можно сделать в 2,4,8 и.т.д раз быстрее (на самом деле даже не обязательно в степень двойки, но так удобнее), в прерывании по совпадению с OCR1A ставить выход в 1. А регистр OCR1B использовать как величину ШИМ и в его прерывании обнулять выход. Ну и еще в 16-й меге есть железные режимы FAST и PHASE CORRECT PWM с использованием 8,9 и 10 бит, но это намного быстрее чем в 10 раз. |
Автор: | Леонид Иванович [ Чт июл 19, 2012 22:14:26 ] |
Заголовок сообщения: | Re: ATmega16a ШИМ и частота |
sx386 писал(а): Как можно увеличить частоту импульсов в 10 раз ? Если нужно сдвинуть спектр ШИМ-сигнала максимально вверх по частоте, но не хочется терять разрешение ШИМ, можно сделать программный "довесок" к ШИМ в виде сигма-дельта: viewtopic.php?p=1344737#p1344737 |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |