用RL78/G13开发板+LCD2004做的万年历
簡單介紹:用RL78/G13开发板RTC做的万年历视频,驱动2004LCD作为显示,仅需设定年、月、日、时间,星期和农历则有程序自动计算出来,并可以显示芯片内部的温度。
RTC注意事項:Year/Month/Day/Hour/Min/Sec這些寄存器都是BCD代碼的,開始我還以為十六進制,搞得不顯示不正常,后來看datasheet才知道是BCD代碼的。
演示視頻:http://v.eepw.com.cn/video/play/id/1943
非常強大,有誰要計算星期和農歷代碼的,請留email.
RL78 /G13 開發板EEPROM仿真教程
1、開始學習前,大家請準備請下載Renesas 提供的EEPROM摸擬庫和自编程库FDL 庫Type01
EEPROM模拟库.zip
自编程库FDL Type01.zip
2、解壓EEPROM摸擬庫后,用得到的RENESAS_EEL_RL78_T01E_V1.10.exe 生成庫代碼,設置如下圖:
解壓自编程库FDL 庫Type01后,用得到的RENESAS_FDL_RL78_T01E_V1.10.exe生成庫代碼,設置如下圖:
3、在你要加入摸擬EEPROM功能的project目錄下建一個EEPROM目錄,把剛才生成的所有”eel.*”和”fdl.*”文件拷貝到EEPROM目錄內,所有文件如下圖:
4、用IAR打開你的項目,把所有所有”eel.*”和”fdl.*”文件增加到項目內(Workspace),
如下圖藍色框內的文件是新增加進去的:
5、打開fdl_descriptor.h 修改以下兩個參數
/* specify the CPU frequency in [Hz]
#define FDL_SYSTEM_FREQUENCY 32000000 //modify by campo
因為我的時候運為32M,你需要按自己的要求修改
/* specify the size of the EEL pool inside the FAL pool expressed in blocks */
#define EEL_POOL_SIZE 4 //modify by campo
EEL_POOL_SIZE 為什麽要改,大家可以參考文件EEPROM Emulation Library EEL-T01.pdf 的61頁
6、項目option中的linker要做一下修改,如下圖藍色框內的參考,要設為EEPROM目錄中的eel_sample_linker_file.xcl:
7、這里我只是用了原文件里的默認設置,大家可以根據自己的需要,按庫文件里的說明進行修改的。
8、到這里基本上已經完成了EEPROM仿真庫的加入了,可以試一下“Make“,編譯一下,看有沒有錯誤,如沒有錯誤我們就可以進行下一步,寫我們的程序了。
9、打開自己項目主文件,即Main函數的文件,在頭部增加以下代碼:
#include "eeprom/eel.h"
eel_request_t my_eel_request;
unsigned char testbyte;
/* 為什麽定義eel_request_t my_eel_request;* /
/* 為什麽定義這個,大家打開eel_types.h 找到eel_request_t就會明白了 */
/* 再不明白就再打開eel.h 找到EEL_Execute 這個函數的說明 */
/*還是不明白就打開EEPROM Emulation Library EEL-T01.pdf 的71頁仔細看多幾遍*/
我是這樣的,看下圖,藍色框中是這次測試加進去的代碼:
10、下面是我寫的一些代碼進行測試的,大家可以按自己的需要自己寫:
unsigned char Status;
Status=EEL_Init(); // Initialization of the EEPROM Emulation Library (EEL)
if(Status==EEL_OK) // if no error occurred
{
EEL_Open(); // Activates the access to the used flash medium.
my_eel_request.command_enu = EEL_CMD_STARTUP;
my_eel_request.timeout_u08 = 255;
EEL_Execute(&my_eel_request); // start up
if (my_eel_request.status_enu == EEL_OK)
{
;
}
else
{
my_eel_request.command_enu = EEL_CMD_FORMAT;
EEL_Execute(&my_eel_request); //if error format EEPROM
if(my_eel_request.status_enu ==EEL_OK)
{
my_eel_request.command_enu = EEL_CMD_STARTUP;
my_eel_request.timeout_u08 = 255;
EEL_Execute(&my_eel_request);
}
}
testbyte=25;
my_eel_request.address_pu08 = (eel_u08*)&testbyte;
my_eel_request.identifier_u08 = 30;
my_eel_request.command_enu = EEL_CMD_WRITE;
my_eel_request.timeout_u08 = 255;
EEL_Execute(&my_eel_request); //write 1byte data into flash
if(my_eel_request.status_enu == EEL_OK)
{
testbyte=0;
my_eel_request.address_pu08 = (eel_u08*)&testbyte;
my_eel_request.identifier_u08 = 30;
my_eel_request.command_enu = EEL_CMD_READ;
my_eel_request.timeout_u08 = 255;
EEL_Execute(&my_eel_request); //read 1byte data into flash
}
my_eel_request.command_enu = EEL_CMD_SHUTDOWN;
my_eel_request.timeout_u08 = 255;
EEL_Execute(&my_eel_request); //shutdown
EEL_Close(); //Deactivates the access to the used flash medium.
NOP();
}
11、各個API函數的使用,大家可以打開”eel.h”“,”eel_types.h” 看說明,更詳細的,可以看下載的庫文件里的pdf文件,里面有很詳細的說明。
Campozeng
campozeng@gmail.com
2012-9-6
RL78/G13 開發板EEPROM仿真教程PDF文件檔可以從下面連接下載,謝謝。
——回复可见内容——
真的很不错,留个信箱,fanghaiyu@gmail.com能提供
AD+溫度傳感器+串口+上位機軟件實現溫度監控程序跑马灯程序吗?
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 | |
【换取逻辑分析仪】rtthread添加RRH62000传感器驱动-基于野火启明6M5被打赏48分 | |
换逻辑分析仪+Verilog多输入门被打赏27分 |