![]() 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; // Инициализация АЦП **** Конец |
![]() |
|
|
![]()
Сообщение
#2
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 403 Регистрация: 23.7.2016 Пользователь №: 49672 ![]() |
Урааа!!! заработало. Забывал в обработчике прерывания стереть бит прерывания. Думал, что в статусный регистр ничего и никогда писать ненужно, оказалось, что кроме подтверждения прерывания от группы еще надо стереть бит в статусном регистре ADC.
P.S. Чего все сидят на Атмеле?, TMS320F28xxx замечательный процик, настолько быстрый я просто поражен!. И разгоняется на ура!, например TMS320F28016, который на 60 мегагерц, я разогнал до 120, работаю на 100 мГц, а чего стоит конвейерное АЦП на 12 Мегагец!!!. Намного приятнее писать под CCS там редактор на основе Eclipse и вообще, нужно слезать в области сварочников с чего-бы то нибыло кроме специализированных кристаллов, коими являются TMS320 & dsPIC33!!! P.P.S. Может народ не знает, но TMS320F28xxx даже прошить проще чем Атмел (ему, по сути, не нужен программатор), он прошивается по USART, достаточно простого USB-USART свистка!!! А dsPIC33EP64GS502 я купил в корпусе 28 выводов с расстоянием между ножками 1.27 мм, тоесть паяется проще чем Атмел. И стоит он в чипдип 160 руб. уже. Сообщение отредактировал astrahard - 29.5.2019, 9:55 |
![]() |
|
![]()
Сообщение
#3
|
|
Специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 747 Регистрация: 14.1.2010 Из: Украина Пользователь №: 16909 ![]() |
P.S. Чего все сидят на Атмеле?, TMS320F28xxx замечательный процик, настолько быстрый я просто поражен!. Та все очень просто! Во первых, на Атмегу код намного проще для понимания. Я не программист, но если долго посидеть, то написанный код для Атмела, могу разобрать. В С++ на мегу не кто не пишет, кто знает Си, тот атмегу уже давно стороной обходит и как минимум на СТМ32 поделки делают. Не видел тут пока не одного сварочного аппарата, который полноценно собран на МК. Все изделия сделаны на меге, используют внешнюю ШИМку, и только по одной ноге ей управляют. У самого лежит TMS320F28xxx и куча разных STM32, но до учения не как руки не дойдут и приходится постоянно друзей просить код написать (но обычно все заняты и приходится долго ждать). TMS320F28xxx брал для общего проекта, который так и не сдвинулся толком с места. А потенциал у нее огого, хватит для управления сварочного аппарата с PFC, режимами MMA/MIG/MAG/TIG как DC так и АС напряжением на выходе и еще управление от смартфона прилепить можно. И все это почти без внешней обвязки. Но увы, программистов радиолюбителей не так уж много, а тем более тех кто готов поделится своим трудом со всеми! |
![]() |
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 8.6.2025, 11:51 |
|
![]() |