拿到开发板,经过一段时间的摸索和学习,现在把自己初次使用开发板控制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这样,
当自己的程序越来越大的时候,这种情况会越来越麻烦。
这只是举一个简单的例子进行说明。
这芯片的强大功能和实用性是其他芯片无可比拟的,给我们开发的人员带来很大的便利,但也看到了诸多的问题,希望赛普拉斯公司能够做出更加人性话的东西。自己的小小心得,大家见笑啦。
-