6754|2

145

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

PSoC 4:PWM控制RGB [复制链接]

拿到开发板,经过一段时间的摸索和学习,现在把自己初次使用开发板控制RGB的心得分享给大家:
一、首先建立工程文件
  
这一步很多人都会建立,官方的教程《PSoC®4 Pioneer Kit Guide》略微讲了一些。但是在建立工程的时候,还得细致一些,看清楚开发板上的芯片的型号,以免出现错误。

二、工程文件

在原理图中,我们使用PWM模块来配置RGB的输出。

三、原理图

对原理图的几点说明:
(1)PWM的时钟设置
我在这里设置Clock的时钟频率为100KHz,原因在于我设置的RGB变化颜色的间隔时间为1S。
(2)PWM模块的设置


PWM的配置设置很重要,直接影响RGB灯颜色的出现。况且这三个PWM的配置还不一样:

(3)芯片引脚的设置

图中红色圈必须选中,表示该引脚外部显示结束,否则会报错,不能进行程序编译。

(4)电源设置
把电源的设置名称尽量与PSoC 4电路板的设置一致,便于区分。

当原理图设置,没有出现报错后,接下来进行引脚配置
四、引脚配置


五、main.c主函数
PSOC的最大好处就在于,它已经集成了很多的资源,最重要的是它的底层配置已经写好啦,我们直接应用就可以了!不需要在像STM32,C51,AVR, MP430哪样,还得配置引脚,还有各种的设置。我们在原理图中配置好之后,在main中,只需要配置RGB的显示顺序就可以啦。程序如下:
/*****************************************************************************
* LED_Red   - P1[6]
* LED_Green - P0[2]
* LED_Blue  - P0[3]
******************************************************************************/
#include
#define RED 0u
#define GREEN 1u
#define BLUE 2u
#define NUM_OF_COLORS 7u


CYCODE const uint8 colorMap[][3] = {{0x99,0x00,0x99},  /* Violet */
         {0x4B,0x00,0x82},  /* Indigo */
         {0x00,0x00,0xFF},  /* Blue   */
         {0x00,0xFF,0x00},  /* Green  */
         {0xFF,0xD3,0x00},  /* Yellow */
         {0xFF,0x45,0x00},  /* Orange */
         {0xFF,0x00,0x00}}; /* Red    */

void main()
{
    uint8 colorIndex = 0u;

    PWM_Red_Start();
    PWM_Green_Start();
    PWM_Blue_Start();


    Clock_PWM_Start();

    for(;;)
    {
        for(colorIndex = 0; colorIndex < NUM_OF_COLORS; colorIndex++)
       {
            PWM_Red_WriteCompare(colorMap[colorIndex][RED]);
            PWM_Green_WriteCompare(colorMap[colorIndex][GREEN]);
            PWM_Blue_WriteCompare(colorMap[colorIndex][BLUE]);
   
           CyDelay(1000);
       }
    }
}

五、编译
点击编译,系统自动完成编译完成,并且会把底层的程序也显示出来

编译之后出现的文件。

六、下载程序
连接PSoC 4开发板,点击下载就可以啦。

还想说几句:
做完第一个实验,心里既高兴也无奈。关键在于PSoC生成的程序比较混乱,出乎了我的意料。虽然能够应用,但是我们在做大兴实际应用开发的时候,混乱的代码会给我带来很大的不便。举一个简单的例子,在主函数中,函数的调用,你无法像KEIL这样,

当自己的程序越来越大的时候,这种情况会越来越麻烦。
这只是举一个简单的例子进行说明。

这芯片的强大功能和实用性是其他芯片无可比拟的,给我们开发的人员带来很大的便利,但也看到了诸多的问题,希望赛普拉斯公司能够做出更加人性话的东西。自己的小小心得,大家见笑啦。

PWM_Blue.png (49.99 KB, 下载次数: 0)

PWM_Blue.png
此帖出自单片机论坛

最新回复

非常详细,不错!  详情 回复 发表于 2013-11-9 15:14
点赞 关注
个人签名非淡泊无以明志,非宁静无以致远。
 

回复
举报

2万

帖子

74

TA的资源

管理员

沙发
 
图文并茂,赞 :)
此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 

回复

5304

帖子

453

TA的资源

五彩晶圆(高级)

板凳
 
非常详细,不错!
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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