lcdhome论坛_凌阳ir—vfd修改教程

上传人:第*** 文档编号:38741405 上传时间:2018-05-07 格式:PDF 页数:8 大小:293.11KB
返回 下载 相关 举报
lcdhome论坛_凌阳ir—vfd修改教程_第1页
第1页 / 共8页
lcdhome论坛_凌阳ir—vfd修改教程_第2页
第2页 / 共8页
lcdhome论坛_凌阳ir—vfd修改教程_第3页
第3页 / 共8页
lcdhome论坛_凌阳ir—vfd修改教程_第4页
第4页 / 共8页
lcdhome论坛_凌阳ir—vfd修改教程_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《lcdhome论坛_凌阳ir—vfd修改教程》由会员分享,可在线阅读,更多相关《lcdhome论坛_凌阳ir—vfd修改教程(8页珍藏版)》请在金锄头文库上搜索。

1、 Sunplus DVD IR 以及 VFD 的修改说明 Sunplus DVD IR 以及 VFD 的修改说明 1如何修改 IR 1如何修改 IR AIR 类型 AIR 类型 Sunplus DVD 系统支持的 IR 编码格式有 NEC、PHILIPS、THOMSON、M50560 四种。以下是该四种 IR 的信号格式: 1)NEC 格式 2)PHILIPS 格式 LCD HOME论坛网 - WWW.LCDHOME.NETDVD技术专栏交流论坛 BBS.LCDHOME.NET3)THOMSON 格式 4)M50560 格式 LCD HOME论坛网 - WWW.LCDHOME.NETDVD技术

2、专栏交流论坛 BBS.LCDHOME.NETB IR 按键在软件中的处理流程 B IR 按键在软件中的处理流程 C如何修改 IRC如何修改 IR 首先要知道,对于不同类型的 IR,它们具有不同的数据格式。当然,现在 市面上的 IR 的种类应都在该四种类型之类。 如果不确定你当前所用的 IR 属于哪 一种数据格式,你只要用视波器测试出其码值波形,再与上面提供的波形比较便 可知道是属于以上哪一种类型,并根据该类型在相应的 IR 映射文件如IR-VFD LCD HOME论坛网 - WWW.LCDHOME.NETDVD技术专栏交流论坛 BBS.LCDHOME.NETir_code_dirircode_

3、fuss.h 以及iopioprom.c 中定义相关的宏定义,如下: #define IR_NEC /default as NEC IR /#define IR_PHILIPS /#define IR_THOMSON /#define IR_M50560 即使对于同种类型的 IR, 它们之间还是有不同的 ID, 例如, 同样 NEC 的 IR, 它们的 ID 有的是 20DF,有的是 00F3 等。这样会有利于不同的机型用不同的遥 控器时,不会相互误操纵。 对于不同的 ID,在定义好了类型之后,可以在文件 IR_VFDir_drv.c 中将 以下语句:#define WATCH_CUSTID

4、0 改为:#define WATCH_CUSTID 1, 编译后运行,按下遥控器就可以在屏幕上看到 OSD 显示的 ID 值。该 ID 值,我们 需要将它填在相应的 IR 映射文件中, 如在IR-VFDir_code_dirircode_fuss.h 的文件中: #define _IRCODE_INC_V /kenny add it 891004 #define IR_NEC #define IR_ADDR_PATT 0x20df #include “irconfig.h“ 测试完 IR 的 ID 值后,我们要将以上的定义恢复到 0,且在下面的语句中打 开定义: #define WATCH_C

5、USTID 0 #define DEBUG_IR_CODE /if you want to see which defined code 编译运行后,我们就可以测试 IR 上的各键值,如按下某一键,屏幕上有 OSD 显示“IR: 16 F: 8” ,其中的“16”就是键值。 所有 IR 键值测好后,再将对应按键功能的宏定义字符串(请参考 IR-VFDirconfig.h) 填到 IR 映射文件如IR-VFDir_code_dirircode_fuss.c 文件中的 const BYTE ir_mapcode=数组里。这样,我们再将“#define DEBUG_IR_CODE”关掉后编译,我们便

6、能随心所欲地使用我们的遥控器了。 D如何增加一个新的 IR 功能 D如何增加一个新的 IR 功能 Step1.在ircmd.h中对新增功能函数进行声明。 Step2.在ircmd.c中编写具体实现新增功能的相应函数。 Step3.在irc_function_name_tbl.c中的 irc_func_table函数指针数组中的 相应位置中添入所增功能函数的名字。 Step4.在irconfig.h中的 enum枚举列表中的相应位置增加入所增功能键的名 字如: IRC_PLAY (一定要注意顺序, 要求与 Step3 中的数组顺序保持一致) Step5.在按键无效键文件中(此文件可在 ir_in

7、v_tbl_include.c 中找到,如: #include “.CustomersSunplusinv_tbl.h“),对所新增的按键功 能进行无效键定义。需要说明的是,在按键无效键文件中,其中的 StateChkKey数组定义的是在菜单、编程、版本菜单等菜单状态下的无 效键;而 ir_invalid_state数组定义的是在播放状态下的无效键。需 要注意的是这两者之中的按键排列顺序要和 irconfig.h 中的 enum枚举LCD HOME论坛网 - WWW.LCDHOME.NETDVD技术专栏交流论坛 BBS.LCDHOME.NET列表以及 ir_parser.c 中的 irc_fu

8、nc_table函数指针数组顺序保持一 致。 例:ir_invalid_state数组中的有 PREVIEW|_9FRAMES,/35:IRC_FORMAT, 此条语句的意思是:在 PREVIEW 和_9FRAMES 状态时,按 IRC_FORMAT 键是 无效的。 Step6.在 IR 码值映射文件如ircode_sunplus_8200.c的 ir_mapcode数组中的 对应位置添入所增加功能键的名字 eg: IRC_PLAY。 2如何修改 VFD 2如何修改 VFD A. 設定送出之位址所對應的 VFD 螢幕顯示區 BIT BYTE 01234567 001234567 1891011

9、12131415 21617181920212223 32425262728293031 43233343536373839 54041424344454647 64849505152535455 75657585960616263 86465666768697071 97273747576777879 108081828384858687 118889909192939495 1296979899100101102103 13104105106107108109110111 14112113114115116117118119 15120121122123124125126127 16128

10、129130131132133134135 17136137138139140141142143 18144145146147148149150151 19152153154155156157158159 20160161162163164165166167對應之 BYTE: BIT: 值 1開啟 user_init.h 中 137 之 #define TEST_VFD 1 2按搖控器之 UP 與 DOWN 鍵,加或減少 BYTE:BIT:值,並依據紀各BYTE:BIT:值所對應之 VFD 點區。 3將對應之區域與上表之對應值設於 vfd_yux_l.h 及 vfd_yux.c 中(以裕興的L

11、CD HOME论坛网 - WWW.LCDHOME.NETDVD技术专栏交流论坛 BBS.LCDHOME.NETVFD 為) 4關閉 /#define TEST_VFD 1 a. 左右鍵 = 點 BYTE (設定 MEMORY BYTE 大小) b. 上下鍵 = 傳送同之 mode command c. volum_up = 遞增 bit 值,判斷對應之熄滅區 d. volum_down = 第鍵 bit 值,判斷對應之熄滅區 B. 設定接收面盤按鍵所傳回之對應值 1開啟 vfd.c 中 36 之 #define VFD_KEY_TEST 1 2按下面盤之各鍵並記顯示於螢幕之 KEY 值 3將紀

12、好的值設於 vfd_yux_k.h 中(以裕興為) 4關閉 /#define VFD_KEY_TEST 1 C. 判斷 user_init.h(約 45)中,是否已在相對應的 IR 設定 D. 修改 PANEL 為適當之 NEW_PANNEL(如 SAMSUNG_PANNEL 三星) 並修改(約 175 左右)新增 #elif define(SAMSUNG_PANNEL) #define NEWVFD_DRIVER ? ? ? 影響 vfd.h #define NEWVFD_MODULE E. 新增設定檔設於 vfd_mode.c 中 如新增: #elif define(SAMSUNG_PAN

13、NEL) #include “vfd_sam1_k.h” #include “vfd_sam1_l.h” #include “vfd_sam1.c” LCD HOME论坛网 - WWW.LCDHOME.NETDVD技术专栏交流论坛 BBS.LCDHOME.NETF. 修改新增檔的內容 a. (1)vfd.c 中(約 36),enable #define VFD_KEY_TEST 將對應之 PANEL_KEY 上的傳回值填入 vfd_sam1_k.h (2)disable #define VFD_KEY_TEST b. 修改 vfd_sam1_l.h 及 vfd_sam1.c 之內容 3如何利用

14、 GPIO 口实现面板按键 3如何利用 GPIO 口实现面板按键 由于 Portable DVD 上一般很少使用到 VFD Driver,因此面板按键的实现只 能另寻它法。在此我们简单介绍如何采用 GPIO 口对(按键)矩阵进行扫描以达 到面板按键的准确接收的目的。你应该很明白,如有 8 个 GPIO 口最多只能实现 4X4=16 个按键;7 个 GPIO 口最多只能实现 4X3=12 个按键 为进一步说明面板按键的实现,下面例举 4x4=16 个按键的实现。 A电路原理图 VCC3.3V4.7k X 8CON11 2 3 4 5 6 7 8SW1 12SW2 12SW9 12SW5 12SW

15、10 12SW3 12SW12 12SW8 12SW11 12SW7 12SW6 12SW14 12SW15 12SW16 12SW13 12SW4 12B工作原理和实现 上图中, 假设 CON11、 2、 3 和 4 分别接到 8210/8202 的 gpio0、 gpio1、 gpio2和 gpio3; CON15、 6、 7 和 8 分别接到 8210/8202 的 gpio4、 gpio5、 gpio6和 gpio7 (gpio是面板按键的所用 gpio 口的集合) 。 gpio0gpio3 设为 RISC 控制且为输出的状态, gpio4gpio7设为 RISC 控制且为输入的状 态(GPIO 口的设置请参照第 4 章) 。 在软件具体实现的时候, gpio0gpio3先全部置为高电平, 然后 gpio0 输出低电平,接着,从 gpio4gpio7依次读入当前状态,如全为高电平, 则此时在 gpio0线上的 4 个按键没有一个是按下的,如有一个为低电平,则可LCD HOME论坛网 - WWW.LCDHOME.NETDVD技术专栏交流论坛 BBS.LCDHOME.NET依据此时 gpio4gpio7中哪一个等于 0 (低电平) 来判断出是哪一个键 (SW1、 SW2、SW3、SW4 中的一个)按下。依此类推,然后 gpio

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号