打印

分享——PSOC4软件体验

[复制链接]
1264|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
G21372|  楼主 | 2014-4-28 00:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.1      实验目的
1)        创建项目
2)        代码编写(编写一个LED三色灯闪烁的例程)
3)        在线仿真
4)        跟一般的MCU对比功能和性能
1.2      实验总结
1)        在这个例程的应用中,项目的创建是比较简单,容易的。这个得益于这个PSOC CREATOR的软件平台。如果从这个实验来评价,这个芯片只是一个M0的处理器,如果从使用的角度来评价,过多的软件设置反而显得有些复杂和繁琐。软件提供了很多的参数和功能设置界面,其实这些都是可以通过代码来配置寄存器来实现的(实验内容会说明),所以这些设置界面基本上是用于系统初始化时使用,程序运行过程中,我们还是需要去了解功能寄存器的意义。
2)        软件本身就带编译和仿真功能,这个是很好的,很方便的。
3)        这个实验比较简单,能够体现的就是对于入门是比较方便的,而且是一个很好的就教学工具,我们选择功能和配置管脚等流程的时候,我们很容易而且很清晰的感觉到每个模块的结构和原理,项目的创建过程就好像是我们堆砌积木一样。
1.3      实验内容1.3.1   创建项目文档
打开软件CREATOR2.2。然后在菜单栏选>>File>>New>>Project进入项目界面
我们可以直接选择图中红色框的选项,创建一个全新的项目。另外,我们还可以选择蓝色框中的选项,这些选项可以让我们直接生成对应的完整的项目。我们可以把这些项目作为例程学习。
我们创建了全新的项目后,软件就已经给我们生成了相关的文件夹和文件。

用于添加和配置功能模块,端口(文件1)
用于设置管脚,类似FPGA的分配管脚(文件2)
Main.c,主函数文件,按照一般的MCU编程
每个功能模块或者是端口都有对应的配置文件夹和配置文件,有时间读一下,发觉这就是对应的头文件,配置和功能函数。
然后我们双击文件1(TOPDESIGN.CYSCH),从文件名来看,就已经有点像我们用PROTEL来做硬件电路板的原理图文件名,其实真的是类似的,如下图
这个项目只需要用到三个管脚来控制各三色的LED,所以我们把“Digital Output Pin”直接拖进工作区就添加成功了。
然后双击刚才添加的PIN,进入对应PIN的配置界面。
            这些不用选     
              修改你想要的名字
接着就是配置管脚号,这个管脚配置就相当于C语言的“sbit PIN_B= P0^2”,但在这里我们就是通过下拉菜单选择完成。双击文件二(led.cydwr),按照表中的参数修改就可以了。
到这个位置,配置M0的环节就完成了,或者说我们已经生产了一个M0,后面通过菜单栏的BUILD>>GENERATE APPLICATION,然后系统就会生成系统中模块需要的文件,剩下的工作就是编写MAIN.C函数。
沙发
G21372|  楼主 | 2014-4-28 00:02 | 只看该作者
1.3.2   编写函数
在编写MAIN.C函数前,推荐大家看一下刚才生成的文档,我们现在就拿文件夹《PIN_B》下的PIN_B.C来看一下(文件名跟我们添加的端口或模块是同名的)
PIN_B.C下有几个函数,其中我们要用的就一下这个
void Pin_B_Write(uint8 value)
{
    uint8 drVal = (uint8)(Pin_B_DR & (uint8)(~Pin_B_MASK));
    drVal = (drVal | ((uint8)(value << Pin_B_SHIFT) & Pin_B_MASK));
    Pin_B_DR = (uint32)drVal;
}
上面的硬件生成过程会把我们需要用到的端口函数都准备好了,我们只要懂得使用就是好,所以很方便入门。
MAIN.C函数如下:
void main()
{
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    unsigned long i;
    /* CyGlobalIntEnable; */ /* Uncomment this line to enable global interrupts. */
    for(;;)
    {
        /* Place your application code here. */
        Pin_R_Write(0);
        Pin_G_Write(1);
        Pin_B_Write(1);
        for(i=0;i<2000000;i++);
        
        Pin_R_Write(1);
        Pin_G_Write(0);
        Pin_B_Write(1);        
        for(i=0;i<2000000;i++);        
        
        Pin_R_Write(1);
        Pin_G_Write(1);
        Pin_B_Write(0);        
        for(i=0;i<2000000;i++);        
        
        
    }
}
一个很简单的入门例子就完成了。然后就是编译和下载。
1.3.3   编译下载
     通过菜单栏的BUILD>>“BUILD 文件名”或者shift F6编译工程。
     通过菜单栏的DEBUG>>“PROGRAM”或者ctrl F5 下载工程。下载完毕,就可以看到开发工具上的三色LED在闪烁了。
1.3.4   仿真
     软件和硬件都支持在线仿真,所以我们可以尝试一下。通过菜单栏的DEBUG>>“DEBUG”或者 F5 进入DEBUG。仿真这个环节跟其他的开发工具都是类似的,使用很方便。
1.3.5   使用比较
软件提供了很多配置的界面和功能选项,这些功能都可以让用户非常直观的了解到这个芯片系统的构成,而且很容易上手,这点非常好,更可以说明软件的功能强大。但有的朋友可能比较习惯直接用代码来配置功能,其实都是可以的。现在我们举个例子来说明一下。
在文件夹《PIN_B》下的PIN_B.C有这么一段函数,是用来配置端口的模式的
void Pin_B_SetDriveMode(uint8 mode)
{
    SetP4PinDriveMode(Pin_B__0__SHIFT, mode);
}
其实上面的一段代码可以通过软件提供的选项来实现,刚才我们在配置PIN功能的时候有这么一个界面,在这个界面我们也可以配置相同的功能。
所以软件提供的强大的功能,能够方便我们在编程时候了解芯片的性能,在时候的工程中,我们还是需要去了解芯片的内部寄存器和原理。
1.3.6   输入应用
在上面的例子中,有了输出的应用,在这里顺便把按键的输入也一起加入。其他的步骤按照上面的,只要在文件1(TOPDESIGN.CYSCH)中再添加一个输入端“Digital input Pin”,然后在配置端口号就可以了,这次我们不用软件了配置端口的寄存器,而是直接用软件提供的函数来配置。
把输入端口配置到SW2(P0.7),MAIN.C代码如下
void main()
{
    Pin_1_SetDriveMode(3);         //配置输入端上拉
    Pin_1_Write(1);                 //配置输入端初始化为1
    for(;;)
    {
if(Pin_1_Read())               //读取端口值
       {
       Pin_R_Write(1);             //控制LED的状态
       }
    else
       {
       Pin_R_Write(0);     
       }     
    }
}

使用特权

评论回复
板凳
wangjinlili| | 2014-4-28 12:58 | 只看该作者
学习了 谢谢分享

使用特权

评论回复
地板
teabottle| | 2014-4-28 13:03 | 只看该作者
这个实验比较简单,能够体现的就是对于入门是比较方便的

使用特权

评论回复
5
jinpaidianzi| | 2014-4-28 13:20 | 只看该作者
在这个例程的应用中,项目的创建是比较简单

使用特权

评论回复
6
acer4736| | 2014-4-28 13:22 | 只看该作者
如果从使用的角度来评价,过多的软件设置反而显得有些复杂和繁琐

使用特权

评论回复
7
gexingyouxian| | 2014-4-28 22:49 | 只看该作者
写得很详细 谢谢楼主分享

使用特权

评论回复
8
yangguangaisha| | 2014-4-28 22:51 | 只看该作者
软件本身就带编译和仿真功能,这个是很好的,很方便的

使用特权

评论回复
9
huigoushang| | 2014-4-28 23:02 | 只看该作者
楼主是在官网上试用的PSoC4吗

使用特权

评论回复
10
jaygeng| | 2014-4-28 23:04 | 只看该作者
请问这位大侠,有没有PSoC4自定义组件的例程?小生菜鸟一个还请多多指教!!

使用特权

评论回复
11
u880| | 2014-4-28 23:04 | 只看该作者
这个实验比较简单,能够体现的就是对于入门是比较方便的

使用特权

评论回复
12
waitingf| | 2014-4-29 13:14 | 只看该作者
很容易理解 写的不错 实验也不错

使用特权

评论回复
13
someonewho| | 2014-4-29 13:17 | 只看该作者
是一个很好的就教学工具

使用特权

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

本版积分规则

197

主题

1658

帖子

5

粉丝