搜索
bottom↓
回复: 5

2802x移植问题

[复制链接]

出0入0汤圆

发表于 2013-3-13 14:05:54 | 显示全部楼层 |阅读模式
我想把TI controlsuit上28035的例程移植到2802x系列上来,就从ti官网上下了SPR832.zip来安装了2802x系列的例程,选了epwm_deadband这个例程来移植,有用到一个宏定义
ADC_MACRO_INIT();
#define ADC_MACRO_INIT()                                                                                                                                                \
                                                                                                                                                                                                \
DELAY_US(ADC_usDELAY);                                                                                                                                                        \
    AdcRegs.ADCCTL1.all=ADC_RESET_FLAG;                                                                                                                        \
        asm(" NOP ");                                                                                                                                                                \
        asm(" NOP ");                                                                                                                                                            \
                                                                                                                                                                                                \
        EALLOW;                                                                                                                                                                                \
         AdcRegs.ADCCTL1.bit.ADCBGPWD        = 1;        /* Power up band gap */                                                                \
                                                                                                                                                                                                \
        DELAY_US(ADC_usDELAY);                                        /* Delay before powering up rest of ADC */                        \
                                                                                                                                                                                                \
        AdcRegs.ADCCTL1.bit.ADCREFSEL        = 0;                                                                                                                \
           AdcRegs.ADCCTL1.bit.ADCREFPWD        = 1;        /* Power up reference */                                                        \
           AdcRegs.ADCCTL1.bit.ADCPWDN         = 1;        /* Power up rest of ADC */                                                        \
        AdcRegs.ADCCTL1.bit.ADCENABLE        = 1;        /* Enable ADC */                                                                        \
                                                                                                                                                                                                \
        asm(" RPT#100 || NOP");                                                                                                                                                \
                                                                                                                                                                                                \
        AdcRegs.ADCCTL1.bit.INTPULSEPOS=1;                                                                                                                        \
        AdcRegs.ADCCTL1.bit.TEMPCONV=0;                                                                                                                                \
                                                                                                                                                                                                \
        DELAY_US(ADC_usDELAY);                                                                                                                                                \
                                                                                                                                                                                                \
        /******* CHANNEL SELECT *******/                                                                                                                        \
                                                                                                                                                                                                \
        AdcRegs.ADCSOC0CTL.bit.CHSEL         = 9;        /*Dummy meas. avoid 1st sample issue Rev0 Picollo*/        \
        AdcRegs.ADCSOC0CTL.bit.TRIGSEL  = 5;                                                                                                                \
        AdcRegs.ADCSOC0CTL.bit.ACQPS         = 6;                                                                                                                \
                                                                                                                                                                                                \
        AdcRegs.ADCSOC1CTL.bit.CHSEL         = 12;        /* ChSelect: ADC B4-> Phase A Current */                        \
        AdcRegs.ADCSOC1CTL.bit.TRIGSEL  = 5;        /* Set SOC0 start trigger on EPWM1A */                                \
        AdcRegs.ADCSOC1CTL.bit.ACQPS         = 6;         /* Set SOC0 S/H Window to 6+1 ADC Clock Cycles */        \
                                                                                                                                                                                                \
        AdcRegs.ADCSOC2CTL.bit.CHSEL         = 14;        /* ChSelect: ADC B6-> Phase B Current */                        \
        AdcRegs.ADCSOC2CTL.bit.TRIGSEL  = 5;                                                                                                                \
        AdcRegs.ADCSOC2CTL.bit.ACQPS         = 6;                                                                                                                \
                                                                                                                                                                                                \
        AdcRegs.ADCSOC3CTL.bit.CHSEL         = 1;        /* ChSelect: ADC A1-> DC Bus Voltage */                                \
        AdcRegs.ADCSOC3CTL.bit.TRIGSEL  = 5;                                                                                                                \
        AdcRegs.ADCSOC3CTL.bit.ACQPS         = 6;                                                                                                                \
                                                                                                                                                                                                \
        AdcRegs.ADCSOC4CTL.bit.CHSEL         = 11;        /* ChSelect: ADC B3-> V Phase A */                                        \
        AdcRegs.ADCSOC4CTL.bit.TRIGSEL         = 5;                                                                                                                \
        AdcRegs.ADCSOC4CTL.bit.ACQPS         = 6;                                                                                                                 \
                                                                                                                                                                                                \
        AdcRegs.ADCSOC5CTL.bit.CHSEL         = 10;        /* ChSelect: ADC B2-> V Phase B */                                        \
        AdcRegs.ADCSOC5CTL.bit.TRIGSEL  = 5;                                                                                                                \
        AdcRegs.ADCSOC5CTL.bit.ACQPS         = 6;                                                                                                                \
                                                                                                                                                                                                \
        AdcRegs.ADCSOC6CTL.bit.CHSEL         = 9;        /* ChSelect: ADC B1-> V Phase C */                                        \
        AdcRegs.ADCSOC6CTL.bit.TRIGSEL  = 5;                                                                                                                \
        AdcRegs.ADCSOC6CTL.bit.ACQPS         = 6;                                                                                                                \
                                                                                                                                                                                                \
        AdcRegs.ADCSOC7CTL.bit.CHSEL         = 4;    /* ChSelect: ADC A4-> Low Side DC Bus Return Cur.*/        \
        AdcRegs.ADCSOC7CTL.bit.TRIGSEL         = 5;                                                                                                                \
        AdcRegs.ADCSOC7CTL.bit.ACQPS         = 6;                                                                                                                \
                                                                                                                                                                                                \
                                                                                                                                                                                           \
        EDIS;                                                                                                                                                                                \
                                                                                                                                                                                                \
                                                                                                                                                                                                \
    /* Set up Event Trigger with CNT_zero enable for Time-base of EPWM1 */                                                \
    EPwm1Regs.ETSEL.bit.SOCAEN = 1;     /* Enable SOCA */                                                                                \
    EPwm1Regs.ETSEL.bit.SOCASEL = 1;    /* Enable CNT_zero event for SOCA */                                        \
    EPwm1Regs.ETPS.bit.SOCAPRD = 1;     /* Generate SOCA on the 1st event */                                        \
        EPwm1Regs.ETCLR.bit.SOCA = 1;       /* Clear SOCA flag */
里面有调用 DELAY_US(ADC_usDELAY);       

#define DELAY_US(A)  DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)

DSP28x_usDelay()是在 DSP28x_usDelay.asm文件中定义,这段程序被定义在ram(0x008000)里执行,0x008012后,显示no source available for 0x008012,汇编里面继续单步会跑飞会跑到.text的最后面,谁知道的能帮在下一下啊,不甚感激

出0入0汤圆

发表于 2013-8-15 00:20:37 | 显示全部楼层
顶起,让高手来看看!

出0入0汤圆

发表于 2013-8-15 10:13:01 | 显示全部楼层
只能说,你的工程环境没有设置好。楼主可以试着去掉这个DELAY_US函数,自己写一个简单的delay函数来代替。这里无需精确延时。

出0入0汤圆

发表于 2013-9-25 11:25:39 | 显示全部楼层
我今天调试:执行到delay_us(adc_usdelay );程序跑飞到非法地址中断,请问楼主当时怎么解决的呢

出0入0汤圆

 楼主| 发表于 2013-9-26 13:03:24 | 显示全部楼层
1.工程里有个delay_us的asm文件,看有没有加入?
2.MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
        InitFlash();这个程序是否执行;
3。RamfuncsLoadStart在cmd文件里是否定义;

出0入0汤圆

发表于 2013-9-26 13:33:31 | 显示全部楼层
breeze_one 发表于 2013-9-26 13:03
1.工程里有个delay_us的asm文件,看有没有加入?
2.MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &Ramfu ...

好的,,今天用sci fifo中断程序又会跑进非法中断里,不用fifo的话就正常~~~~囧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 23:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表