本帖最后由 lyzhangxiang 于 2015-9-2 17:49 编辑
开始对着VGA时序实现程序了,写着写着发现R7F0C809这颗IC还是蛮不错的,寄存器设计上还算清晰。
基本的外设和内部的资源有些紧凑,毕竟针对的领域不同,应该是主打低端领域,针对消费类的东西吧。
RL78环境有了,写代码还是用nodepad++吧,不愿意接触新东西,截点代码片段给大家看看,还没调试,估计错误不少。
先把框架搞搞好再实际弄弄吧,不着急,慢慢来,参与论坛的活动也是一件蛮享受的事情哦,还得好好修心。
主文件
头文件
一共就两个文件,乱七八糟的东西就不要了,小玩意就不折腾啥组件了,简单的来。对于基本的外设操作,看看寄存器,理理清楚就可以写了。
为了便于自己理解和后面维护,还是要用点宏定义的好,简单的封装了下IO的东西,贴出来给新手参考下,很久不折腾这种寄存器了。
- /* Typedef ------------------------------------------------------------------ */
- enum {
- BIT1 = 0x01,
- BIT2 = 0x02,
- BIT3 = 0x04,
- BIT4 = 0x08,
- BIT5 = 0x10,
- BIT6 = 0x20,
- BIT7 = 0x40,
- BIT8 = 0x80
- };
- enum {
- PIN_DIGITA = 0x00,
- PIN_ANALOG = 0x01
- };
- enum {
- NORMAL_OUTPUT = 0x00,
- P_NMOS_OUTPUT = 0x01
- };
复制代码
- #define VGA_VHYNC_PMC PMC0
- #define VGA_VHYNC_PIO P0
- #define VGA_VHYNC_POM POM0
- #define VGA_VHYNC_PMO PM0
- #define VGA_VHYNC_PIN BIT5
- #define VGA_SINGAL_PIN BIT3
- #define VGA_SINGAL_PM0 PM1
- #define KEY_SINGAL_PM0 PM1
- #define KEY_SINGAL_PIO P0
- #define KEY_SINGAL_PIN BIT7
复制代码
- /**
- * VGA_SINGAL_VSYNC
- * 场同步信号宏定义
- */
- #define VGA_VSYNC_DIGITAL() CLR_BIT(VGA_VSYNC_PMC, VGA_VSYNC_PIN)
- #define VGA_VSYNC_ANALOG() SET_BIT(VGA_VSYNC_PMC, VGA_VSYNC_PIN)
- #define VGA_VSYNC_NORMAL_OUTPUT() CLR_BIT(VGA_VSYNC_POM, VGA_VSYNC_PIN)
- #define VGA_VSYNC_P_NMOS_OUTPUT() SET_BIT(VGA_VSYNC_POM, VGA_VSYNC_PIN)
- #define VGA_VSYNC_OUTPUT() CLR_BIT(VGA_VSYNC_PMO, VGA_VSYNC_PIN)
- #define VGA_VSYNC_INPUT() SET_BIT(VGA_VSYNC_PMO, VGA_VSYNC_PIN)
- #define VGA_VSYNC_OUT_LOWL() CLR_BIT(VGA_VSYNC_PIO, VGA_VSYNC_PIN)
- #define VGA_VSYNC_OUT_HIGH() SET_BIT(VGA_VSYNC_PIO, VGA_VSYNC_PIN)
- /**
- * VGA_SINGAL_VIDEO
- * 视频信号宏定义
- */
- #define VGA_VIDEO_OUTPUT() CLR_BIT(VGA_VIDEO_PMO, VGA_VIDEO_PIN)
- #define VGA_VIDEO_INPUT() SET_BIT(VGA_VIDEO_PMO, VGA_VIDEO_PIN)
- /**
- * KEY_SINGAL_V
- * 按键信号宏定义
- */
- #define KEY_SINGAL_OUTPUT() CLR_BIT(KEY_SINGAL_PMO, KEY_SINGAL_PIN)
- #define KEY_SINGAL_INPUT() SET_BIT(KEY_SINGAL_PMO, KEY_SINGAL_PIN)
- #define KEY_SINGAL_DIGITAL() CLR_BIT(KEY_SINGAL_PMC, KEY_SINGAL_PIN)
- #define KEY_SINGAL_ANALOG() SET_BIT(KEY_SINGAL_PMC, KEY_SINGAL_PIN)
- #define KEY_SINGAL_IN_READ() GET_BIT(KEY_SINGAL_PIO, KEY_SINGAL_PIN)
复制代码
这段时间事情蛮多的,实际上硬件调试估计还得过一段时间了,看后面具体时间安排了。
May helps you
End.