打印

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

[复制链接]
1136|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
teabottle|  楼主 | 2013-10-31 00:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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;
        }
}

相关帖子

沙发
teabottle|  楼主 | 2013-10-31 00:13 | 只看该作者
本来想控制小车,现在LED灯都不行,一直定在while(GpioDataRegs.GPADAT.bit.GPIO1==1);处,也就说明Echo口没有返回值,我用的是DSp2000直接与超声波模块相链接,工作电压是5V的!大神们给看看是程序问题还是硬件有问题

使用特权

评论回复
板凳
tianli1980| | 2014-2-12 20:33 | 只看该作者
建议楼主直接google linux 手册 pdf 然后出来一系列的书,看看就OK了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

97

主题

1441

帖子

1

粉丝