3982|11

775

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

【PSoC4心得】软件体验 [复制链接]

PSOC4软件体验
粘贴时图片不跟大队,完整的文档如PDF
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编程
每个功能模块或者是端口都有对应的配置文件夹和配置文件,有时间读一下,发觉这就是对应的头文件,配置和功能函数。
然后我们双击文件1TOPDESIGN.CYSCH,从文件名来看,就已经有点像我们用PROTEL来做硬件电路板的原理图文件名,其实真的是类似的,如下图
这个项目只需要用到三个管脚来控制各三色的LED,所以我们把“Digital Output Pin”直接拖进工作区就添加成功了。
然后双击刚才添加的PIN,进入对应PIN的配置界面。
            这些不用选     
              修改你想要的名字
接着就是配置管脚号,这个管脚配置就相当于C语言的“sbit PIN_B= P0^2”,但在这里我们就是通过下拉菜单选择完成。双击文件二(led.cydwr),按照表中的参数修改就可以了。
到这个位置,配置M0的环节就完成了,或者说我们已经生产了一个M0,后面通过菜单栏的BUILD>>GENERATE APPLICATION,然后系统就会生成系统中模块需要的文件,剩下的工作就是编写MAIN.C函数。
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   输入应用
在上面的例子中,有了输出的应用,在这里顺便把按键的输入也一起加入。其他的步骤按照上面的,只要在文件1TOPDESIGN.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);     
       }     
    }
}
本章完毕

PSOC4软件体验.pdf

288.25 KB, 下载次数: 166

详细的文档

此帖出自单片机论坛

最新回复

楼主的PDF让我想起大学时的实验报告,那个痛苦啊~~不堪回首~~~ 这认真态度,顶起!!!!!!!!!  详情 回复 发表于 2013-11-14 23:43
点赞 关注
 

回复
举报

662

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
不错, 加油, 期待有更好的分享.
此帖出自单片机论坛
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

板凳
 
真是太谢谢你了!!

不过,我挺好奇,你上哪学到这个怎么做的?
看视频么?
此帖出自单片机论坛
 
 
 

回复

775

帖子

0

TA的资源

纯净的硅(高级)

4
 

回复 板凳辛昕 的帖子

客气了。

不过这个板子确实用的人不多。不知道是不大家都还没有收到板子,这个板子特点还是有的。

用的时候确实要边看数据手册边翻译英文。
此帖出自单片机论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

5
 

回复 4楼fsyicheng 的帖子

那个,昨晚就想回复你了。
可惜昨晚打不开。

太感激你了......之前我看到例程里那么多文件,乱七八糟,一个头两个大

所以挺同意 你 楼主贴里 说的 那句话
如果从这个实验来评价,这个芯片只是一个M0的处理器,如果从使用的角度来评价,过多的软件设置反而显得有些复杂和繁琐。软件提供了很多的参数和功能设置界面,其实这些都是可以通过代码来配置寄存器来实现的(实验内容会说明),所以这些设置界面基本上是用于系统初始化时使用,程序运行过程中,我们还是需要去了解功能寄存器的意义。


不过看了你写的这个pdf
很顺手做起来,觉得其实这种模式,已经非常接近VC++  CBuilder这类图形界面软件开发工具了。
这在纯C软件,特别是单片机上还真是第一次见。

最开始稍有点脑残是,不知道为什么明明选了P02,后来却没确定好,变成了P00,让我相当郁闷,怎么灯没反应.......

总体来说还是很谢谢你
因为你这个文档简单明了,但是真真切切让我亮起了LED,大家都懂的这是单片机的helloworld.....从此就好办了~~~
此帖出自单片机论坛
 
 
 

回复

775

帖子

0

TA的资源

纯净的硅(高级)

6
 
软件模式是不错的,把复杂的东西简单化了(这个复杂我觉得是在入门阶段),如果入门后,我觉得大家还是比较喜欢直接用函数来修改参数。

而且软件的模式在MCU的厂家算是比较新,但记忆中这种类似模块的功能方式,应该很早就有了。记得以前有些可编程的玩具也是用模块来让用户组合动作的。

这个芯片应该是处于   M0  <==> PSOC4   <==>FPGA带CORE
此帖出自单片机论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

7
 

回复 6楼fsyicheng 的帖子

哥们,不知道你有没发现,这个例程不对。
那个SARADC的中断程序写的跟狗屎一样。
第二个if死活都进不去的。
我后来发现丫的,它根本就没设置 转换结束 的中断请求,

那个清除中断标志也是错的。
此帖出自单片机论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

8
 
额,搞错了
你这个是软件体验 贴 不是那个 温度传感器那个贴。
此帖出自单片机论坛
 
 
 

回复

775

帖子

0

TA的资源

纯净的硅(高级)

9
 

回复 8楼辛昕 的帖子

你好,具体我没有去使用,我提个当初我犯的错误,IDE中提供的模块或者器件,其中一栏是“off-Chip”,具体的数据手册资料我没看,但我猜想这个是指:这栏里面的东西是芯片中不提供的。

如果你在项目中用到了这些东西,你就要评估一下是否会影响到你的设计结果,而并非例程不对。

希望如歌曲一样:这陷阱,这陷阱,偏你遇上
此帖出自单片机论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

10
 

回复 9楼fsyicheng 的帖子

SAR ADC这个确实是片上提供了。
当然,也有一个的确是我没理解对。就是你说的这种情形,就是那个Timer的例程。
分两种,一种是捕捉按键时的定时值,另一个是直接定时中断的。

因为我把SAR ADC这个东西的那个寄存器设置好以后,那中断就进去了。
此帖出自单片机论坛
 
 
 

回复

135

帖子

0

TA的资源

纯净的硅(初级)

11
 
楼主的PDF让我想起大学时的实验报告,那个痛苦啊~~不堪回首~~~
这认真态度,顶起!!!!!!!!!
此帖出自单片机论坛
 
 
 

回复

775

帖子

0

TA的资源

纯净的硅(高级)

12
 
谢谢你的支持,希望其他的文档也能为你带来所需。
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表