Помощь - Поиск - Пользователи - Календарь
Перейти к полной версии этой страницы на форумах сайта Электрик: TMS320F28016 не работает прерывание АЦП
Форумы сайта ЭЛЕКТРИК > Сварка, самодельные устройства для сварки > Самодельные сварочные устройства


astrahard
Помогите мучаюсь, все восемь раз прочитал про АЦП и контроллер прерываний. Не вызывается обработчик прерываний второй секции АЦП, причем запуск от ШИМ происходит исправно и считываются показания АЦП циферки меняются. Вот текст инициализации прерываний и АЦП, причем прерывания от таймера и 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;
// Инициализация АЦП **** Конец
astrahard
Урааа!!! заработало. Забывал в обработчике прерывания стереть бит прерывания. Думал, что в статусный регистр ничего и никогда писать ненужно, оказалось, что кроме подтверждения прерывания от группы еще надо стереть бит в статусном регистре 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 руб. уже.
alexlo13
Цитата(astrahard @ 29.5.2019, 7:28) *
P.S. Чего все сидят на Атмеле?, TMS320F28xxx замечательный процик, настолько быстрый я просто поражен!.


Та все очень просто! Во первых, на Атмегу код намного проще для понимания. Я не программист, но если долго посидеть, то написанный код для Атмела, могу разобрать. В С++ на мегу не кто не пишет, кто знает Си, тот атмегу уже давно стороной обходит и как минимум на СТМ32 поделки делают. Не видел тут пока не одного сварочного аппарата, который полноценно собран на МК. Все изделия сделаны на меге, используют внешнюю ШИМку, и только по одной ноге ей управляют.
У самого лежит TMS320F28xxx и куча разных STM32, но до учения не как руки не дойдут и приходится постоянно друзей просить код написать (но обычно все заняты и приходится долго ждать).
TMS320F28xxx брал для общего проекта, который так и не сдвинулся толком с места. А потенциал у нее огого, хватит для управления сварочного аппарата с PFC, режимами MMA/MIG/MAG/TIG как DC так и АС напряжением на выходе и еще управление от смартфона прилепить можно. И все это почти без внешней обвязки. Но увы, программистов радиолюбителей не так уж много, а тем более тех кто готов поделится своим трудом со всеми!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
   Rambler's Top100      
Электрик © 2002-2008 Oleg Kuznetsov     
  Русская версия IP.Board © 2001-2024 IPS, Inc.