打印

PSOC GPIO控制

[复制链接]
2746|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jackle_zheng|  楼主 | 2009-7-2 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在PSOC designer的新手,我试着编写一段代码控制GPIO口,让LED灯闪烁,编译通过了,但是执行异常,只能停留在高或低状态下。我的环境是:PSOC designer5.0 SP4.5  芯片:CY7C63813-SXC,代码很简单,如下:
#include <m8c.h>
void delay(void);
void main()
{
 P17CR |= 0X09;
   
     // Main loop
 while(1)
    {
    // Clear Watchdog
    //M8C_ClearWDT;
        
    P1DATA &= 0X7F;
    delay();
    P1DATA |= 0X80;
    delay();
    //timer_delay_msec(3000);
        
    }
}
void delay(void)
{
 unsigned int i = 5000;
 while(i)
 {
  i--;
 }
}
沙发
ni_labview| | 2009-7-2 13:22 | 只看该作者

请确认I/O设置成输出方式

把简单project发上来,问题不会很大

使用特权

评论回复
板凳
jackle_zheng|  楼主 | 2009-7-2 13:40 | 只看该作者

回复主题:PSOC GPIO控制

请见附件,谢谢了哈
相关链接:https://bbs.21ic.com/upfiles/img/20097/200972133625849.rar

使用特权

评论回复
地板
ni_labview| | 2009-7-2 14:08 | 只看该作者

这个USB我没用过,已经请AE哥哥帮忙

使用特权

评论回复
5
jackle_zheng|  楼主 | 2009-7-2 15:25 | 只看该作者

谢谢了哈,

使用特权

评论回复
6
jxin| | 2009-7-2 16:25 | 只看该作者

请参照

你的
void delay(void)
{
unsigned int i = 5000;
while(i)
{
  i--;
}
}
而你的click选的是24M, 这个delay的汇编是:
DEC, SBB,CMP,JNZ 4个指令的循环,所以每一个loop的cycle是28个1/24M,5000个就是28x5000x1/24M = 0.0058s. 是在闪烁,但是人眼分辨不出来,可以通过增大loop的周期解决。

使用特权

评论回复
7
jackle_zheng|  楼主 | 2009-7-2 16:48 | 只看该作者

回复主题:PSOC GPIO控制

jxin说的对,确实是延时太短的缘故。我太疏忽了。我一直怀疑编译器的问题。我现在在做一个遥控器,鼠标合一的USB设备的这么个项目,PSOC designer也是第一次用,因为我手头上没有仿真器,所以想用个LED灯跟踪程序。不料,PSOC designer sp3下,编译的时候链接出现问题,查看网络类似问题,推荐换成SP4.5,换到SP4.5之后就好了。但是LED灯还是不行,所以单独做了个工程,来驱动这个led,出现问题,自然就想到编译器上面了,呵呵。
谢谢了哈

使用特权

评论回复
8
雪尘314| | 2010-3-30 18:21 | 只看该作者
呵呵,我也刚遇到这个问题,是延时时间太短了。

使用特权

评论回复
9
lobby| | 2010-3-30 18:55 | 只看该作者
学习了,
6楼讲的真清楚。

使用特权

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

本版积分规则

3

主题

17

帖子

0

粉丝