打印

PSoC的IO口的一些个人感觉

[复制链接]
8006|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ic开发者|  楼主 | 2011-11-21 18:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PSoC的功能,大家都有目共睹,毋庸置疑,但是就IO来说,个人觉得不是那么简便。这里先不说它有8种输出模式,就简单的输入输出来说,在低级的51单片机里,赋高赋零一个简单的等式即可,例如P0_0=1;既简便又不占用资源,仅仅是一条赋值语句。但是在PSoC3里面,仅仅一个赋值,就需要用到一个函数,一个函数就相当于调用,占有一定的资源。用了一段时间PSoC了,也感受了它的强大,只是最近想做个东西,才发现确实不那么简便。
沙发
yangguangaisha| | 2011-12-7 22:40 | 只看该作者
的却如此 有同感啊

使用特权

评论回复
板凳
meishizhaoshi| | 2011-12-13 19:42 | 只看该作者
有共鸣

使用特权

评论回复
地板
PSoC小子| | 2011-12-13 20:52 | 只看该作者
PSoC3/5的IO的读写也可以通过直接赋值/读取寄存器来完成,而且这种方法效率比直接用API要高得多。 推荐一篇博客,专门写PSoC3 IO口的不同赋值方式的比较,写的挺好。
http://www.cypress.com/?rID=38854&cache=0

使用特权

评论回复
5
去耦滤波| | 2011-12-19 22:22 | 只看该作者
值得借鉴一下

使用特权

评论回复
6
phnbs| | 2011-12-23 00:03 | 只看该作者
PSoC小子,你可试过用用SFR 寄存器如8051一样操作Pin口 用SFRPROxDR 和SFRPRTxSEL,请PSoC小子高人

使用特权

评论回复
7
PSoC小子| | 2011-12-24 14:50 | 只看该作者
6楼,我没这样用过,但是刚才试了一下,可以用。代码如下:

#include <device.h>
#define P15_Enable        SFRPRT1SEL |= 0x20
sfr  P1  = 0x90;
sbit P15 = P1^5;
void main()
{
    P15_Enable;
    for(;;)
    {
        CyDelay(500);
                P15 = 1;
                CyDelay(500);
                P15 = 0;
    }
}
PSoC3所有GPIO口的寄存器(SFRPRTxDR, SFRPRTxPS, SFRPRTxSEL)在256bytes的片内SRAM均有映射,具体可以参考AN60630 - PSoC3 - 8051 Code Optimization 第二页。

使用特权

评论回复
8
phnbs| | 2011-12-24 17:08 | 只看该作者
请较PSoC小子高人
1。SFRPRT1SEL |= 0x20 是不是设置端口P1的第六口P1_5 为1 使能?
    2.  SFR P1=0x09 是00001001 而不是第六口 为何要设这个?
3.SBIT P15 是设P1-5为1吗?
这个程序是操作P1_5 闪烁。但在topdesiger 里怎样做?

使用特权

评论回复
9
phnbs| | 2011-12-24 17:36 | 只看该作者
能说说 SFRPRTxDR, SFRPRTxPS, SFRPRTxSEL 干嘛用

使用特权

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

本版积分规则

0

主题

151

帖子

1

粉丝