[原创] [原创文章] 【R7F0C809】外部中断来改变LED闪烁频率

wgsxsm   2015-9-29 22:40 楼主
距离上篇帖子已有一个月了,中间虽说不是一直在研究这个板子,也花费了大量时间。 第一次玩瑞萨的MCU,用户手册看起来还是有点吃力的,自从上次闪烁了LED一直没有什么进展,兴趣骤然消了不少。 还是看了 @强仔00001的OLED文章,接了几根杜邦线把OLED点亮之后,才重拾了一些信心,自己申请的板子,含着泪也要把它弄完。 于是乎,还是需要系统起来,结合自己当时的申请理由,一步步的完成。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 点亮了LED之后,在加入显示之前还是想把人机交互不可或缺的按键功能加入进来。 实验室根据该套件的上板原理图进行的,参照了R01AN2438CC0100--定时器阵列单元(间隔定时器)的例子:http://cn.renesas.com/support/do ... _r7f0c807_timer.zip主要移植了intc.c和intc.h,timer.c和timer.h 例程中LED PIN脚为P10,按键PIN脚为P137,而实验板上的LED PIN脚为P01,按键PIN脚为P11 0.JPG 1.JPG 此实验大致概述: 1.LED和INTP各个PIN的配置,输出的输出,输入的输入 按键的输入功能被我不小心配置为输出,导致两天才查到原因,一定要细心啊!!! 另外,值得说一下的是,外部中断引脚中原例程的P137本身是可以配置为INTP0的,而本实验的P11配置为INTP1需要多一步对PIOR寄存器的设置

p137.JPG

p11.JPG

pior2.JPG

2. TAU0_Channel0 的间隔定时器与INTP1中断的设置 定时器部分几乎未做任何修改,采取计数器初始值为2ms间隔的定时中断,计数250次也即是500ms之后,LED状态翻转;外部中断发生后,修改计数器的值来改变间隔定时的时间让LED翻转的快慢发生变化。 外部中断部分将设置原来的INTP0修改为现在的INTP1,另外需要在此之前配置上文提到的P11为数字输入,以及PIOR2=1,否则得不到相应的实验现象。 3.开启TAU0 的间隔定时器中断与INTP1中断 中断开启之后,每隔一段时间,TAU0_Channel0中断处进行判断是否LED翻转的条件是否达到,达到则进行闪烁;INTP1中断到来时,先进行10ms的消抖处理,结束之后才做相应的运算。 实验现象如下 int-led.gif ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 最后补上自己的代码
E_LOCK_20150929.zip (154.81 KB)
(下载次数: 7, 2015-9-29 22:40 上传)
本帖最后由 wgsxsm 于 2015-9-29 22:42 编辑

回复评论 (2)

支持,加油
点赞  2015-9-29 23:09
楼主加油
点赞  2015-9-29 23:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复