17回答

1收藏

[原创] PSoC4实验:利用中断ISR计数

 

英飞凌 英飞凌 9571 人阅读 | 17 人回复 | 2013-09-26

本程序是对旋转编码器编码的基本思路,与大家分享,兼作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);
}

工程与演示视频:
timer-test.zip (1.12 MB, 下载次数: 172)

演示文件.zip (8.87 MB, 下载次数: 757)



分享到:
回复

使用道具 举报

回答|共 17 个

倒序浏览

沙发

ddllxxrr

发表于 2013-9-26 08:04:55 | 只看该作者

好东东顶一下

http://shop34182318.taobao.com/
https://shop436095304.taobao.com
板凳

feiante

发表于 2013-9-26 08:06:15 | 只看该作者

留着以后学习学习
地板

fj1161

发表于 2013-9-26 08:46:38 | 只看该作者

顶一个~~~~~~~~~~~~~~~·
第五年了,这次一定要坚持到底,不留遗憾!!!
5#

新蓉

发表于 2013-9-26 10:27:15 | 只看该作者

我试了还是不行,我不知道是不是板子连线出错了,你能给我发下你连线图,3q
6#

leonard

发表于 2013-9-26 11:37:58 | 只看该作者

本帖最后由 leonard 于 2013-9-26 11:48 编辑
新蓉 发表于 2013-9-26 10:27
我试了还是不行,我不知道是不是板子连线出错了,你能给我发下你连线图,3q ...

是硬件的连接吗?我直接贴照片可以吗?
7#

糖悦之果飞

发表于 2013-9-26 14:52:56 | 只看该作者

不错不错,顶一个喽
8#

新蓉

发表于 2013-9-26 17:05:37 | 只看该作者

我把线连好了,不过还是不行,就是现在最简单的显示显示不出来。就是显示: Count  显示不出来。
9#

leonard

发表于 2013-9-26 18:07:18 | 只看该作者

新蓉 发表于 2013-9-26 17:05
我把线连好了,不过还是不行,就是现在最简单的显示显示不出来。就是显示: Count  显示不出来。 ...

背光亮吗?有对比度吗?
10#

新蓉

发表于 2013-9-27 10:11:15 | 只看该作者

leonard 发表于 2013-9-26 18:07
背光亮吗?有对比度吗?

解决了,是对比度的原因,不过产生“鬼影”了,我是不是需要接一个10K的电位器???
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条