eestyk Опубликовано 16 марта, 2018 Поделиться Опубликовано 16 марта, 2018 Имеется микроконтроллер dsPIC30F5011. Хочу реализовать на нём ШИМ через Output Compare Module, так как у этого модуля есть как раз режим PWM. Всё проинициализировал, задал период и коэффициент заполнения ШИМ (duty cycle - 50%), выбрал Timer2. На соответствующей ноге тыкаюсь осциллографом, ничего нет. Не могу понять в чём проблема. Вроде по даташиту настроил правильно. #define PERIOD_PWM 12484 #define PERIOD_PWM_div2 6242 WriteTimer2 (0); OpenTimer2 (T2_ON & T2_GATE_OFF & T2_IDLE_STOP & T2_PS_1_8 & T2_32BIT_MODE_OFF & T2_SOURCE_INT, PERIOD_PWM); ConfigIntTimer2 (T2_INT_PRIOR_5 & T2_INT_ON); OpenOC3(OC_IDLE_STOP & OC_TIMER2_SRC & OC_PWM_FAULT_PIN_ENABLE, PERIOD_PWM, PERIOD_PWM_div2); ConfigIntOC3(OC_INT_PRIOR_0 & OC_INT_ON); void __attribute__((interrupt, auto_psv)) _T2Interrupt(void) { IFS0bits.T2IF = 0; // Clear Timer interrupt flag Nop(); } void __attribute__((interrupt, auto_psv)) _OC3Interrupt(void) { IFS1bits.OC3IF = 0; // Clear interrupt flag } dsPic30F5011-5013.pdf 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
serg123 Опубликовано 16 марта, 2018 Поделиться Опубликовано 16 марта, 2018 Полный код показать можете, а так непонятно как настроены порты, да и спец регистры pwm 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Реле, вентиляторы, корпуса, разъемы, а так же любые электронные компоненты в нашем каталоге! Бесплатная доставка + 15% кэшбэк + скидки!Перейти на сайт ТМ Электроникс Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
eestyk Опубликовано 19 марта, 2018 Автор Поделиться Опубликовано 19 марта, 2018 Полностью код слишком длинный. // PORTB #define Iout2_adc ADCBUF0 //PORTBbits.RB0 // Вход аналоговый от измерителя тока через нагрузку 1 #define Iout1_adc ADCBUF1 //PORTBbits.RB1 // Вход аналоговый от измерителя тока через нагрузку 2 #define Iout4_adc ADCBUF2 //PORTBbits.RB2 // Вход аналоговый от измерителя тока через нагрузку 3 #define Iout3_adc ADCBUF3 //PORTBbits.RB3 // Вход аналоговый от измерителя тока через нагрузку 4 #define Iout6_adc ADCBUF4 //PORTBbits.RB4 #define Iout5_adc ADCBUF5 //PORTBbits.RB5 #define Iout8_adc ADCBUF6 //PORTBbits.RB8 #define Iout7_adc ADCBUF7 //PORTBbits.RB9 #define Iout10_adc ADCBUF8 //PORTBbits.RB10 #define Iout9_adc ADCBUF9 //PORTBbits.RB11 #define Iext_adc ADCBUFA //PORTBbits.RB12 #define VccCAN_adc ADCBUFB //PORTBbits.RB13 #define VccL_adc ADCBUFC //PORTBbits.RB14 #define VccA_adc ADCBUFD //PORTBbits.RB15 #define Adr4 PORTBbits.RB6 // бит адреса блока #define Adr3 PORTBbits.RB7 // бит адреса блока #define ziTRISB 0b1111111111111111 //настройка направления порта на вход //PORTD #define Vout1_d PORTDbits.RD0 // напряжение на входе 1 #define Vout2_d PORTDbits.RD1 // напряжение на входе 1 #define Vout3_d PORTDbits.RD2 // PWM module as output #define Vout4_d PORTDbits.RD3 // напряжение на входе 3 #define Vout5_d PORTDbits.RD4 // напряжение на входе 4 #define Vout6_d PORTDbits.RD5 // напряжение на входе 5 #define Vout7_d PORTDbits.RD6 // напряжение на входе 6 #define Vout8_d PORTDbits.RD7 // напряжение на входе 7 #define Vout9_d PORTDbits.RD8 // напряжение на входе 8 #define Vout10_d PORTDbits.RD9 // напряжение на входе 9 #define Input1 PORTDbits.RD10 // Вход 1 внешний #define Input2 PORTDbits.RD11 // Вход 2 внешний #define Input3 PORTCbits.RC1 // Вход 3 внешний #define Input4 PORTCbits.RC2 // Вход 4 внешний #define Input5 PORTCbits.RC13 // Вход 5 внешний #define Input6 PORTCbits.RC14 // Вход 6 внешний #define Input7 PORTFbits.RF4 // Вход 7 внешний #define Input8 PORTFbits.RF5 // Вход 8 внешний #define Adr1 PORTFbits.RF2 // бит адреса блока #define Adr2 PORTFbits.RF3 // бит адреса блока #define X1Ctrl PORTFbits.RF6 // наличие разъема адреса? #define ziTRISD 0b1111111111111011 //настройка направления порта на вход #define ziTRISC 0b1111111111111111 //настройка направления порта на вход #define ziTRISF 0b1111111111111111 //настройка направления порта на вход // PORTG #define Sw1_ctrl PORTGbits.RG0 // Выход 1 #define Sw2_ctrl PORTGbits.RG1 // Выход 2 #define Sw3_ctrl PORTGbits.RG2 // Выход 3 #define Sw4_ctrl PORTGbits.RG3 // Выход 4 #define Sw5_ctrl PORTGbits.RG6 // Выход 5 #define Sw6_ctrl PORTGbits.RG7 // Выход 6 #define Sw7_ctrl PORTGbits.RG8 // Выход 7 #define Sw8_ctrl PORTGbits.RG9 // Выход 8 #define Sw9_ctrl PORTGbits.RG12 // Выход 9 #define Sw10_ctrl PORTGbits.RG13 // Выход 10 #define Ready_ctrl PORTGbits.RG14 // Выход готовность #define ziTRISG 0b1000110000110000 //настройка направления порта на выход 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
serg123 Опубликовано 19 марта, 2018 Поделиться Опубликовано 19 марта, 2018 Не это не то, где у вас задана частота работы шим, в каком режиме шим будет работать? опять же нет указания работы седящих на том же порте модулей. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке. Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
солар Опубликовано 19 марта, 2018 Поделиться Опубликовано 19 марта, 2018 4 часа назад, eestyk сказал: слишком длинный Есть такая замечательная вещь как упаковщики. 0 Я не раздаю удочки. Я продаю рыбу. Ссылка на комментарий Поделиться на другие сайты Поделиться
Литиевые батарейки и аккумуляторы от мирового лидера EVE в КомпэлКомпания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
eestyk Опубликовано 22 марта, 2018 Автор Поделиться Опубликовано 22 марта, 2018 Прошу прощения за поздний ответ. При вызове функции в регистры OC3RS записывается период ШИМ, а в регистр OC3R значение скважности ШИМ. Собственно так и получается частота я так понимаю. А что за модуль следящий на порту? void OpenOC3(unsigned int config, unsigned int value1, unsigned int value2) { OC3CONbits.OCM = 0; /* turn off OC before switching to new mode */ OC3RS = value1; /* assign value1 to OCxRS Secondary Register */ OC3R = value2; /* assign value2 to OCxR Main Register*/ OC3CON = config; /* assign config to OCxCON Register*/ } 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
my504 Опубликовано 22 марта, 2018 Поделиться Опубликовано 22 марта, 2018 (изменено) Период ШИМ записывают в регистр пересчета ТАЙМЕРА связанного с этим ШИМом (PRx), где х - номер ТАЙМЕРА, то есть у Вас PR2. А в регистры OCxR и OCxRS (тут х - номер модуля Output Compare) записывают состояние счетчика при срабатывании ШИМа. В зависимости от выбранного режима модуля ШИМ применяется либо один из них, либо оба. Обычно младшие биты OCxCON<OCM> и определяют режим. Читаем референсный мануал на семейство - раздел 14 : http://ww1.microchip.com/downloads/en/devicedoc/70046c.pdf Изменено 22 марта, 2018 пользователем my504 1 戦う前に相手のベルトの色に注目 Ссылка на комментарий Поделиться на другие сайты Поделиться
eestyk Опубликовано 23 марта, 2018 Автор Поделиться Опубликовано 23 марта, 2018 Спасибо, разобрался, ШИМ заработал.Проблемы была как раз в том, что я не задал период ШИМа путём записи значения в регистр PR2. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.