![]() TMS320F28016 не работает прерывание АЦП , Начал писать для управления инвертором |
Здравствуйте, гость ( Вход | Регистрация )
![]() TMS320F28016 не работает прерывание АЦП , Начал писать для управления инвертором |
![]()
Сообщение
#1
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 403 Регистрация: 23.7.2016 Пользователь №: 49672 ![]() |
Помогите мучаюсь, все восемь раз прочитал про АЦП и контроллер прерываний. Не вызывается обработчик прерываний второй секции АЦП, причем запуск от ШИМ происходит исправно и считываются показания АЦП циферки меняются. Вот текст инициализации прерываний и АЦП, причем прерывания от таймера и USART работают исправно. MODBUS запустил во скоростью 111 опросов в секунду. ШИМ также работает и АЦП запускает от своего события сравнения.
// Step 5. User specific code, enable interrupts: // Enable CPU INT1 which is connected to CPU-Timer 0 and SEQ2 ADC: IER |= M_INT1; // Срабатывает, проверено // Enable CPU INT9 which is connected to SCIRXINTA: IER |= M_INT9; // Срабатывает, проверено PieCtrlRegs.PIECTRL.bit.ENPIE =1; // Enable SCI-A RX in the PIE: Group 9 interrupt 1 PieCtrlRegs.PIEIER9.bit.INTx1=1; // Enable TINT0 in the PIE: Group 1 interrupt 7 PieCtrlRegs.PIEIER1.bit.INTx7 = 1; // Enable ADC in the PIE: Group 1 interrupt 2 PieCtrlRegs.PIEIFR1.bit.INTx2 =1; PieCtrlRegs.PIEIER1.bit.INTx2 =1; // InitAdc(); // For this example, init the ADC // Инициализация АЦП ****** EALLOW; // Инициализация АЦП ****** AdcRegs.ADCREFSEL.bit.REF_SEL =0x0; AdcRegs.ADCTRL1.all=0x4A0; AdcRegs.ADCTRL2.all=0x29; AdcRegs.ADCTRL3.all=0xE8; AdcRegs.ADCTRL1.bit.CONT_RUN=0; delay(ADC_usDELAY); // После включения питания нужна задержка AdcRegs.ADCMAXCONV.bit.MAX_CONV2 = 0x8 ;// convert and store in 1 results registers AdcRegs.ADCOFFTRIM.bit.OFFSET_TRIM= -20;// ADC Offset Trim Register AdcRegs.ADCCHSELSEQ4.bit.CONV15 = 0xF; // ADC Input Channel Select EDIS; // Инициализация АЦП **** Конец |
![]() |
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 15.9.2025, 10:07 |
|
![]() |