0 转—— PSoC 4:PWM控制RGB - 英飞凌MCU技术论坛 - 21ic电子技术开发论坛
打印

转—— PSoC 4:PWM控制RGB

[复制链接]
2121|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
G21372|  楼主 | 2014-3-30 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、首先建立工程文件
  
这一步很多人都会建立,官方的教程《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的显示顺序就可以啦。
沙发
G21372|  楼主 | 2014-3-30 16:13 | 只看该作者
/*****************************************************************************
* LED_Red   - P1[6]
* LED_Green - P0[2]
* LED_Blue  - P0[3]
******************************************************************************/
#include <device.h>
#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这样,

使用特权

评论回复
板凳
waitingf| | 2014-3-30 22:35 | 只看该作者
楼主新上手的吧 加油啊

使用特权

评论回复
地板
someonewho| | 2014-3-30 22:54 | 只看该作者
一步一步的很清晰

使用特权

评论回复
5
justbybing| | 2014-3-30 22:57 | 只看该作者
好清晰明了

使用特权

评论回复
6
specialfrin| | 2014-3-30 23:34 | 只看该作者
适合新手好好看看

使用特权

评论回复
7
someontime| | 2014-3-30 23:39 | 只看该作者
这样每一步都不会丢下 很好

使用特权

评论回复
8
haidixibahe| | 2014-3-31 21:26 | 只看该作者
很有参考价值的分享

使用特权

评论回复
9
chao11yue| | 2014-3-31 21:35 | 只看该作者
很清晰明了的把步骤都写了出来

使用特权

评论回复
10
engtafanzhuan| | 2014-3-31 22:04 | 只看该作者
代码可以直接用吗楼主

使用特权

评论回复
11
xichengmadia| | 2014-3-31 22:08 | 只看该作者
貌似很有用 先收藏了

使用特权

评论回复
12
beiwaroad| | 2014-3-31 22:13 | 只看该作者
貌似有点过于简洁了

使用特权

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

本版积分规则

197

主题

1658

帖子

5

粉丝