📄 power.c
字号:
#include <math.h>
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\def.h"
#include "..\inc\power.h"
#include "..\inc\rtc.h"
#define FIN 4000000
void Test_PLL(void)
{
int P_div, M_div, S_val, S_div, mck;
Uart_Printf("[Running change test of M/P/S value]\n");
Uart_Printf("Input M vlaue\n");
M_div=Uart_GetIntNum();
Uart_Printf("Input P vlaue\n");
P_div=Uart_GetIntNum();
Uart_Printf("Input S vlaue\n");
S_div=Uart_GetIntNum();
S_val=pow(2,S_div);
mck=( (M_div+8)*FIN )/( (P_div+2)*S_val );
Uart_Printf("MCLK=%d,M=0x%x,P=0x%x,S=0x%x\n",mck,M_div,P_div,S_div);
Uart_Printf("Now change PLL value\n");
Uart_TxEmpty(0);
ChangePllValue(M_div,P_div,S_div);
Uart_Init(mck,115200);
Uart_Printf("...I'm running in changed MCLK...\nPress any key to return!\n");
while(!Uart_GetKey())
{
Led_Display(0xf);
Delay(1000);
Led_Display(0x0);
Delay(1000);;
}
ChangePllValue(PLL_M,PLL_P,PLL_S);
Uart_Init(0,115200);
Uart_Printf("Returned original clock\n");
}
void Test_HoldMode(void)
{
Uart_Printf("[HOLD Mode(Normal mode with some stopped blocks)]\n");
Uart_Printf("IIS,IIC,ADC,RTC,UART1,SIO,ZDMA,Timer,LCD are stopped step by step.\n");
Uart_Printf("Check the current cunsumption. Type any key to exit.\n");
//Except GPIO,BDMA,UART0
Uart_Printf("IIS off.\n");
rCLKCON=0x3ff8;
Uart_Getch();
Uart_Printf("IIC off.\n");
rCLKCON=0x1ff8;
Uart_Getch();
Uart_Printf("ADC off.\n");
rADCCON|=0x20;
rCLKCON=0x0ff8;
Uart_Getch();
Uart_Printf("RTC_control off.\n");
rCLKCON=0x07f8;
Uart_Getch();
Uart_Printf("UART1 off.\n");
rCLKCON=0x05f8;
Uart_Getch();
Uart_Printf("SIO off.\n");
rCLKCON=0x05d8;
Uart_Getch();
Uart_Printf("ZDMA01 off.\n");
rCLKCON=0x05c8;
Uart_Getch();
Uart_Printf("TIMER0123 off.\n");
rCLKCON=0x05c0;
Uart_Getch();
Uart_Printf("LCD off.\n");
rCLKCON=0x0580;
Uart_Getch();
Uart_Printf("Return to Normal Mode.\n");
rCLKCON=0x7ff8; //IIS,IIC,ADC,RTC,UART,BRDMA,SIO,ZDMA,Timer,LCD
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -