有人用过28027控制超声波模块

2019-08-06 16:47发布

#include "DSP28x_Project.h"

extern void MemCopy(Uint16 *SourceAddr, Uint16* SourceEndAddr, Uint16* DestAddr);
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
extern Uint16 RamfuncsRunStart;
uint32_t distance=0;

/*
* main.c
*/
int main(void) {
        InitSysCtrl();
        InitGpio();
        DINT;
        InitPieCtrl();
        IER=0x00;
        IFR=0x00;
        InitPieVectTable();
        
        MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
        InitFlash();
        InitCpuTimers();
        ConfigCpuTimer(&CpuTimer0,60,6000);
        CpuTimer0Regs.TCR.all=0x0010;
        //CpuTimer0Regs.TCR.bit.TSS=1;
        IER |= M_INT1;
        PieCtrlRegs.PIEIER1.bit.INTx7 = 1;                // timer0  (1.7)
        EINT;
        ERTM;
        while(1)
        {

                GpioDataRegs.GPADAT.bit.GPIO0=1;
                DELAY_US(20L);
                GpioDataRegs.GPADAT.bit.GPIO0=0;

                while(GpioDataRegs.GPADAT.bit.GPIO1==0);
                CpuTimer0Regs.TCR.all=0x4001;
                while(GpioDataRegs.GPADAT.bit.GPIO1==1);
                distance = CpuTimer0.InterruptCount*17;
                CpuTimer0Regs.TCR.all=0x0011;
                if(distance<500)
                {
                        GpioDataRegs.GPACLEAR.bit.GPIO2=1;
                }
                else
                        GpioDataRegs.GPASET.bit.GPIO2=1;
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
teabottle
1楼-- · 2019-08-06 18:55
本来想控制小车,现在LED灯都不行,一直定在while(GpioDataRegs.GPADAT.bit.GPIO1==1);处,也就说明Echo口没有返回值,我用的是DSp2000直接与超声波模块相链接,工作电压是5V的!大神们给看看是程序问题还是硬件有问题
tianli1980
2楼-- · 2019-08-06 20:55
 精彩回答 2  元偷偷看……

一周热门 更多>