搜索
bottom↓
回复: 9

菜鸟请教F2802程序

[复制链接]

出0入0汤圆

发表于 2013-7-23 12:41:26 | 显示全部楼层 |阅读模式
说出来实在丢人,做单片机7年了,现在想学DSP,刚好手头上有F2802这个芯片,就写点程序来驱动玩玩,可是搞了两天尽然连GPIO都未能驱动(硬件是正常的,晶振、复位、电源都正常,别人的程序能跑),望玩过2802的XD指点一下。不胜感激!
程序如下:
void main(void)
{

        //初始化系统  HSPCLK = SYSCLKOUT/2  LSPCLK = SYSCLKOUT/4
        int temp=5000;
        EALLOW;
        SysCtrlRegs.WDCR= 0x0068;
        SysCtrlRegs.PLLCR.bit.DIV = 0x06;
        SysCtrlRegs.PLLSTS.bit.CLKINDIV = 0;
        while(temp--);
        SysCtrlRegs.HISPCP.all = 0x0001;                // HSPCLK = SYSCLKOUT/2
           SysCtrlRegs.LOSPCP.all = 0x0002;                // LSPCLK = SYSCLKOUT/4
        EDIS;
       
        /*关中断*/
        DINT;
        IER = 0x0000;
        IFR = 0x0000;

        /*初始化PIE中断*/
        InitPieCtrl();     //这个就不写了, Disable the PIE  Clear all PIEIER registers:

        /*初始化PIE中断矢量表*/
        InitPieVectTable();
        //
               InitGpio();

        while(1)
        {               

                        GpioDataRegs.GPADAT.bit.GPIO26 = 1;
                        delay();

                        GpioDataRegs.GPADAT.bit.GPIO26 = 0;
                        delay();
                       
        }

}

void InitPieVectTable(void)
{
        int16        i;
        Uint32 *Source = (void *) &PieVectTableInit;
        Uint32 *Dest = (void *) &PieVectTable;
               
        EALLOW;       
        for(i=0; i < 128; i++)
                *Dest++ = *Source++;       
        EDIS;

       

        // Enable the PIE Vector Table
        PieCtrlRegs.PIECTRL.bit.ENPIE = 1;       
                       
}
void InitGpio(void)
{
        EALLOW;

   // Each GPIO pin can be:
   // a) a GPIO input/output
   // b) peripheral function 1
   // c) peripheral function 2
   // d) peripheral function 3
   // By default, all are GPIO Inputs
   GpioCtrlRegs.GPAMUX1.all = 0x0000;     // GPIO functionality GPIO0-GPIO15
   GpioCtrlRegs.GPAMUX2.all = 0x0000;     // GPIO functionality GPIO16-GPIO31
   GpioCtrlRegs.GPBMUX1.all = 0x0000;     // GPIO functionality GPIO32-GPIO34

   GpioCtrlRegs.GPADIR.all = 0x0000;      // GPIO0-GPIO31 are GP inputs
   GpioCtrlRegs.GPBDIR.all = 0x0000;      // GPIO32-GPIO34 are inputs   
   
   // Each input can have different qualification
   // a) input synchronized to SYSCLKOUT
   // b) input qualified by a sampling window
   // c) input sent asynchronously (valid for peripheral inputs only)
   GpioCtrlRegs.GPAQSEL1.all = 0x0000;    // GPIO0-GPIO15 Synch to SYSCLKOUT
   GpioCtrlRegs.GPAQSEL2.all = 0x0000;    // GPIO16-GPIO31 Synch to SYSCLKOUT
   GpioCtrlRegs.GPBQSEL1.all = 0x0000;    // GPIO32-GPIO34 Synch to SYSCLKOUT

   // Pull-ups can be enabled or disabled.
   GpioCtrlRegs.GPAPUD.all = 0x0000;      // Pullup's enabled GPIO0-GPIO31
   GpioCtrlRegs.GPBPUD.all = 0x0000;      // Pullup's enabled GPIO32-GPIO34
   //GpioCtrlRegs.GPAPUD.all = 0xFFFF;    // Pullup's disabled GPIO0-GPIO31
   //GpioCtrlRegs.GPBPUD.all = 0xFFFF;    // Pullup's disabled GPIO32-GPIO34



                GpioCtrlRegs.GPADIR.bit.GPIO26=1;                //Output BUZZER

                EDIS;               
       

}               

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-7-23 12:43:47 | 显示全部楼层
个人理解:在控制DSP时,配置好时钟后不就可以直接驱动IO口了吗?也没看到IO口也需要时钟啊(像STM32),怎么芯片就是没动起来了?不知是不是我还有地方没有配置好,望知道的XD给指点一下。谢谢!

出0入0汤圆

发表于 2013-7-23 12:56:14 | 显示全部楼层
GpioDataRegs.GPASET.bit.GPIO26                 = 1 //置1
GpioDataRegs.GPACLEAR.bit.GPIO26         = 1  //清零

出0入0汤圆

发表于 2013-7-23 14:19:44 | 显示全部楼层
看不出什么问题,时钟配置好,IO口配置好,就没什么了。
TI都有例子的,LZ没运行一下吗?

出0入0汤圆

 楼主| 发表于 2013-7-23 20:33:22 | 显示全部楼层
电子小生 发表于 2013-7-23 12:56
GpioDataRegs.GPASET.bit.GPIO26                 = 1 //置1
GpioDataRegs.GPACLEAR.bit.GPIO26         = 1  //清零

我首先用的就是这个方法,没成功所有改了。我再查看了资料,没发现设置问题,嗨,惭愧啊!

出0入0汤圆

 楼主| 发表于 2013-7-23 20:34:23 | 显示全部楼层
sleet1986 发表于 2013-7-23 14:19
看不出什么问题,时钟配置好,IO口配置好,就没什么了。
TI都有例子的,LZ没运行一下吗? ...

我没有找到2802的例子,不知道再哪能找到,能否提供一下网址?谢谢!

出0入0汤圆

发表于 2013-7-24 08:27:36 | 显示全部楼层
randyzzy 发表于 2013-7-23 20:34
我没有找到2802的例子,不知道再哪能找到,能否提供一下网址?谢谢!




这个附件是TI280x 系列的的库和实例的安装文件,下面的是网址。
http://www.ti.com.cn/tool/cn/SPRC191

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-8-25 17:19:56 | 显示全部楼层
正在学习使用28015,希望会不会和楼主一样跑不起例程。

出0入0汤圆

发表于 2014-8-25 18:35:25 | 显示全部楼层
本帖最后由 steaven2000 于 2014-8-25 18:38 编辑

你把Init_GPIO屏蔽了?这个不能屏蔽,因为DIR寄存器GPIO26需设置为输出(1)。

上面有人提到SET/CLEAR寄存器,这里LED驱动不了不是这个原因,楼主中间已经有delay了。

还有,楼主要注意查看一下你的delay到底是多长时间,太短的话看不到LED闪的。

出0入0汤圆

发表于 2014-9-9 17:00:51 | 显示全部楼层
GpioDataRegs.GPADAT.bit.GPIO26 = 1;
这个改为 GpioDataRegs.GPASET.bit.GPIO26 = 1;
GpioDataRegs.GPADAT.bit.GPIO26 = 0;
这个改为GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;
试试

另外你确定你的GPIO的时钟打开了吗?



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

本版积分规则

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

GMT+8, 2024-7-28 00:30

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

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