低功耗模式運行測試(HALT & STOP)
本次測試連接P70/KR0 和 P71/KR1至兩個輕觸開關,產生進入和退出低功耗模式運行。
功能:正常模式RL73/G13板上的D2點亮,HALT和STOP模式下D2滅。
可以用萬用表來測試各模式下運行的電流;
首先用Applilet生成基礎代碼,我用KR(鍵盤)中斷來喚醒中斷。
在CG_main.c文件定義以下寄存器作為模式的標志位
UCHAR SystemStatus;
在CG_userdefine.h文件定義以下宏
#define SYSTEM_STOP 3
#define SYSTEM_HALT 2
#define SYSTEM_ON 1
下面一點值得注意:
在設置P70/P71兩個IO pull-high 不然功能不正常,Applilet生成的代碼里沒有設pull-high
在CG_int.c這個文件的Key_Int這個函數里加入以下藍色代碼:
/* Set KR0 pin */
PM7 |= 0x01U;
PU7 |= 0x01U;
/* Set KR1 pin */
PM7 |= 0x02U;
PU7 |= 0x02U;
在CG_int_user.文件里頂部加入寄存器SystemStatus的聲明代碼:
extern UCHAR SystemStatus;
在CG_int_user.文件里寫按鍵中斷函數如下以便控制模式運行:
#pragma vector = INTKR_vect
__interrupt void MD_INTKR(void)
{
/* Start user code. Do not edit comment generated here */
if(P7_bit.no0==0) //KR0
{
if(SystemStatus==SYSTEM_ON)
{
SystemStatus=SYSTEM_HALT;
}
else if(SystemStatus==SYSTEM_HALT)
{
SystemStatus=SYSTEM_ON;
}
}
else if(P7_bit.no1==0) //KR1
{
if(SystemStatus==SYSTEM_ON)
{
SystemStatus=SYSTEM_STOP;
}
else if(SystemStatus==SYSTEM_STOP)
{
SystemStatus=SYSTEM_ON;
}
}
/* End user code. Do not edit comment generated here */
}
寫一個簡單的main函數來進行測試:
void main(void)
{
/* Start user code. Do not edit comment generated here */
__low_level_init();
KEY_Enable();
SystemStatus=SYSTEM_ON;
PU7_bit.no7 = 1;
PM7_bit.no7 = 0;
P7_bit.no7=1; //define the LED on RL78/G13 board
while (1U)
{
if(SystemStatus==SYSTEM_ON)
{
P7_bit.no7=0; //LED on
}
else
{
P7_bit.no7=1; //LED off
if(SystemStatus==SYSTEM_HALT)
{
HALT();
}
else
{
STOP();
}
}
}
/* End user code. Do not edit comment generated here */
}
本試驗代碼在下面鏈接下載:
低功耗模式運行測試(HALT & STOP)代碼
無線信息雙向監控系統項目正式啟動
用到的RL78/G13 MCU的資源如下:
UART0:與GPS模塊進行通訊
UART2:與上位機進行通訊
Timer:LED控制、計時、外部信號測量
PWM:驅動蜂史鳴器,控制馬達
RTC:系統時間
AD:測量電壓、溫度、濕度
外部中斷:系統喚醒、
Data flash:斷電記憶數據
IO 驅動LCD:顯示數據
WDT
LVD
下面是Demo的圖片
GPS模塊用于定位終端的位置
LCD模塊用于顯示系統信息、菜單、接收到的公告信息
USB用于與上位機交換數據
2.4G RF模塊用于與附件其它終端交換信息
我的上位機程序也做得差不多了。
下面展示一下給大家看看:
1、首先用RL78/G13 板做了一個終端,可以用于收發其它終端的信息及各種數據:
2、由於我做的無線信息收發系統,我用另一塊板做了另一個終端用于測試:
3.通過上位機發送信息,則無線網絡範圍內的所有終端均可收到信息:
4.收到信息的終終端如果連接上位機,也會將信息上報至上位機:
5.上位機不僅可以收發隨意發送的信息,也將監測所有終端的各種數據,下面是附近終端的溫度數據:
6.系統特有的一鍵時間同步功能,如下圖,如果點一下“Sync Time”,剛所有接入網絡的終端將會同步時間:
7.系統特有的馬達控制功能(Motor Control),因為有的終端會帶有攝像頭,可以用此功能控制攝像頭的方向。
8.通過此系統,可以發送信息通知終端持有者,如發信息給他,“回辦公室”:
9.終端持有者也可以私聊,將信息發至指定用戶,就像QQ一樣,可以自由聊天。
更多功能就不一一描述了。
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |