入手PSOC4已经有一段时间了,虽然拿到的有点晚,但是还是很感谢Cypress的支持和SOSO姐的帮助。
看到论坛上有其他兄弟已经写过一些心得,让我感到了PSOC4用起来很简单,之所以没有再写心得,是因为,大部分大家学到了东西基本一样,没必要重复写。花了两天时间把PSOC Creator熟悉了一下和收集了一些资料,感觉PSOC4真正有意思的不是他能让我们更简单的开发一个东西,而是“灵活”的开发我们的作品。至于灵活的地方就是它里面的可编程资源,包括数字的和模拟的。
由于刚接触而且资料比较少(中文资料,自己英语水平有限啊),所以只能自己一点一点的摸索前进。要是能延长比赛的时间该多好啊,明显时间不够用啊。不过不以比赛为目的的话,希望和大家一起交流一下这个PSOC 器件。
我们公司专门生产8通道24M的逻辑分析仪,查看控制卡的输出信号。也是生平自己第一次使用逻辑分析仪。逻辑分析仪这的是作为一个电子技术人员的好工具,建议大家也都有一个吧。
上个从控制器上扑捉的信号时序图:
有时序图我们可以看到信号线的基本功能:
CLK 时钟输出
OE 输出使能
STB 所存使能
ABCD 行信号选择 可以通过ABCD的值确定扫描那一行
G0和没有采集的G1、R1、R0、B1、B0都是数据输出信号
刚开始写一个小的程序,通过软件模拟一个控制这个时序,刚开始入手,从简单开始嘛。
首先就是放端口:
然后就是编译硬件电路和生成软件文件,编写的程序有点简单:
#include
int main()
{
unsigned char i=0,j=0,b=0;
GREEN_2_Write(0);RED_2_Write(0);BLUE_2_Write(0);//最好在这里初始化一下 要不然会花屏的。
RED_1_Write(0);GREEN_1_Write(0);BLUE_1_Write(0);
for(;;)
{
for(i=0;i<16u;i++)//16行扫描
{
for(j=0;j<32;j++)//行数据
{
b=j%3;//在这里实现的功能就是每一列只显示一种颜色顺序分别是红、绿、蓝
if(b==0)
{
RED_1_Write(1);GREEN_1_Write(0);BLUE_1_Write(0);
RED_2_Write(1);GREEN_2_Write(0);BLUE_2_Write(0);
}
else
if(b==1)
{
RED_1_Write(0);GREEN_1_Write(1);BLUE_1_Write(0);
RED_2_Write(0);GREEN_2_Write(1);BLUE_2_Write(0);
}
else
{
RED_1_Write(0);GREEN_1_Write(0);BLUE_1_Write(1);
RED_2_Write(0);GREEN_2_Write(0);BLUE_2_Write(1);
}
CLK_Write(1);
CLK_Write(0);
}
OE_Write(1);
Sec_Write(i);//选择那一行
STB_Write(1);//锁存数据信号
STB_Write(0);
OE_Write(0); //输出使能
}
}
}
最后就是编译、下载、看结果:
最后编译信息如下:
Flash used: 2430 of 32768 bytes (7.4%).
SRAM used: 1532 of 4096 bytes (37.4%).
--------------- Build Succeeded: 11/30/2013 16:53:42 ---------------
虽然编译成功了,但是SRAM用的太多了,不知道都用到什么地方了。
图片待会儿传上,在老婆带有800万摄像头的手机里。
[ 本帖最后由 cxzs1234 于 2013-11-30 22:50 编辑 ]