距离上篇帖子已有一个月了,中间虽说不是一直在研究这个板子,也花费了大量时间。
第一次玩瑞萨的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
此实验大致概述:
1.LED和INTP各个PIN的配置,输出的输出,输入的输入
按键的输入功能被我不小心配置为输出,导致两天才查到原因,一定要细心啊!!!
另外,值得说一下的是,外部中断引脚中原例程的P137本身是可以配置为INTP0的,而本实验的P11配置为INTP1需要多一步对PIOR寄存器的设置
2. TAU0_Channel0 的间隔定时器与INTP1中断的设置
定时器部分几乎未做任何修改,采取计数器初始值为2ms间隔的定时中断,计数250次也即是500ms之后,LED状态翻转;外部中断发生后,修改计数器的值来改变间隔定时的时间让LED翻转的快慢发生变化。
外部中断部分将设置原来的INTP0修改为现在的INTP1,另外需要在此之前配置上文提到的P11为数字输入,以及PIOR2=1,否则得不到相应的实验现象。
3.开启TAU0 的间隔定时器中断与INTP1中断
中断开启之后,每隔一段时间,TAU0_Channel0中断处进行判断是否LED翻转的条件是否达到,达到则进行闪烁;INTP1中断到来时,先进行10ms的消抖处理,结束之后才做相应的运算。
实验现象如下
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最后补上自己的代码
本帖最后由 wgsxsm 于 2015-9-29 22:42 编辑