PSoC4实验:利用中断ISR计数
本程序是对***编码器编码的基本思路,与大家分享,兼作ISR的实验交流。在压缩工程里有演示的视频,由于上传图片的大小限制,就没办法直接贴在这里了。
top-design:
Pin2和Pin3的是用作电源和地点亮LCD1602的,Pin4是高电平,要求串联10k欧的电阻与Pin1相连,也就是用10k欧的电阻串联pin0.4和pin0.7,逻辑关系如蓝色连线。
Pin1与p0.7相连,在PSoC4的右下角有一个开关SW2,本实验就用这个开关产生脉冲,用作计数的信号源。
主代码:
由于cortex-m0有独立的中断存储与组织能力,用isr对脉冲计数是非常容易实现的,而且不会遗漏任何的脉冲信号。相关资料请参考Cypress官网的PSoC4100/4200系列 PSoC4架构计数参考手册,文档编号No.001-86886
有不少人问我要LCD1602的文件,请下载此工程作为参考。
#include <device.h>
#define COMP 0x01
#define HOLD 0xff
CY_ISR_PROTO(Count); //指定中断向量入口
int32 count=0;
void main()
{
CyGlobalIntEnable;
isr_Start(); //isr使能,上升沿触发
isr_SetVector(Count); //指定中断向量
LCD_Start();
LCD_Position(0,0);
LCD_PrintString("Count");
while(1)
{
CySysPmSleep(); //PSoC进入睡眠模式
}
}
CY_ISR(Count) //中断子程序
{
count++;
LCD_Position(1,0);
LCD_PrintNumber(count);
}
工程与演示视频:
本帖最后由 乔哥 于 2013-11-22 12:32 编辑
顶顶。。。。。。。。。。。。 楼主我买了***编码器,上面有SW,DT,CLK,这些代表什么呢?怎么连接呢? 很详细,赞一个 多谢楼主分享 zgbkdlm 发表于 2013-9-28 10:55
好吧,,,撸主,,你忘了PSOC有QEI么???别用中断了..
因为要多通道计数啊,单通道直接用counter就好了 好吧,,,撸主,,你忘了PSOC有QEI么???别用中断了.. leonard 发表于 2013-9-27 10:21 static/image/common/back.gif
必须要到,下面是15字尾巴
嗯嗯,谢谢了 新蓉 发表于 2013-9-27 10:11
解决了,是对比度的原因,不过产生“鬼影”了,我是不是需要接一个10K的电位器??? ...
必须要到,下面是15字尾巴 leonard 发表于 2013-9-26 18:07 static/image/common/back.gif
背光亮吗?有对比度吗?
解决了,是对比度的原因,不过产生“鬼影”了,我是不是需要接一个10K的电位器???
页:
[1]
2