这两周去南瑞那边实习,耽误了发帖的进度,真是不好意思。现在以要点的形式总结如下。1.ek-8962附带实例 光盘自带的是SW-EXAMPLES-UG-5961英文版,翻译后为附件1。打开board中每个实例的uvproj文件,都有英文注释,除了游戏程序之外都很好理解。另外论坛里有上传的keil实例,可以更好帮助我们对板子的理解。
2.“hello”--OLED应用 这个例子可以帮助我们理解OLED的基本函数的使用,当时在论坛上看到用PWM播放出梁祝的程序,那么这两个结合起来就是基本的MP3播放程序,只要把hello实例略微的改编下,把字幕设为从下而上的滚动字幕(显示汉字的话,把汉字库考到flash里,详见论坛),那个Music文件也容易改编成别的音乐,自己做了个“you raise me up“。滚动代码如下,OLED为128*96,一个字符8位。 // 显示部分 for(i=80;i>0;i--) { RIT128x96x4StringDraw(" ", 0, i, 15); RIT128x96x4StringDraw(" ", 0, i+8, 15); RIT128x96x4StringDraw(" ", 0, i+16, 15); RIT128x96x4StringDraw(" When I am down ", 0, i+24, 15); RIT128x96x4StringDraw("and,my soul,so weary", 0, i+32, 15); RIT128x96x4StringDraw(" When troubles come", 0, i+40, 15); RIT128x96x4StringDraw("and my heart burdened be", 0, i+48, 15); RIT128x96x4StringDraw(" Then, I am still", 0, i+56, 15); RIT128x96x4StringDraw("and wait here in the silence", 0, i+64, 15); RIT128x96x4StringDraw(" Until you come", 0, i+72, 15); RIT128x96x4StringDraw(" and sit a while with me", 0, i+80, 15); delay(100000) ; } delay(400000) ; RIT128x96x4Clear(); //满屏后清除 当时不会显示汉字,只能找首英文歌意思下。如果进一步开发,加大可移植性,可以加上SD卡,把lrc文件和歌曲简谱考到SD卡上,直接读取即可。
3.”GPIO“---显示界面 GPIO模块和OLED结合下,就可以达到一个重要的应用——显示界面。评估版A上有四个方向KEY和一个select KEY,预想做出一个显示界面,即:左键开机(LED1亮),右键关机(LED1灭),上下两方向键和选择键做出开机选择界面。附件2为评估版的电路图,从第一页右侧的On-board Peripheral Signals可以看出,LED与SWn对应的GPIO管脚,显示代码如下: RIT128x96x4Init(1000000); while(1) { if (GPIOPinRead(KEY_PORT, KEY_left) == 0x00) // 如果按下KEY { RIT128x96x4StringDraw("welcome!", 35, 24, 15); RIT128x96x4StringDraw("All rights reserved", 15, 80, 15); GPIOPinWrite(LED_PORT, LED_PIN, 0x00); // 点亮LED delay(100000) ; } else if (GPIOPinRead(KEY_PORT, KEY_right) == 0x00) { RIT128x96x4StringDraw("shuting down", 35, 24, 15); RIT128x96x4StringDraw("please wait..", 35, 32, 15); delay(100000) ; RIT128x96x4Clear() ; GPIOPinWrite(LED_PORT, LED_PIN, 0xFF); // 熄灭LED }
delay(100000) ; // 延时约10ms
其中有可能遇到的错误: a.display.c(56): error: #20: identifier "GPIO_PORTF_BASE" is undefined。这是基址没定义,在c文件开头加入 #include "inc/hw_memmap.h" 即可。 b. display.axf: Error: L6218E: Undefined symbol GPIOPinwrite (referred from display.o). 这个问题比较囧。。GPIOPinwrite中的Write没大写。 c. 如果显示NO USB device found。参照例程中的实例,对照Option for target 中的debug和Utilities修改。
[ 本帖最后由 wojiuzhou 于 2010-11-16 15:54 编辑 ]
|