![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
a test code to implement and test LP1768 power control mode
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include "PowerControl.h" 00003 #include "EthernetPowerControl.h" 00004 #include "WakeUp.h" 00005 #include "powercontrol.h" 00006 #include "ClockControl/ClockControl.h" 00007 00008 00009 DigitalOut myled1(LED1); 00010 DigitalOut myled2(LED2) ; 00011 DigitalOut myled3(LED3) ; 00012 00013 Timer t; 00014 00015 00016 00017 int main() 00018 { 00019 //profiling_PHY_PowerDown(); 00020 //PHY_PowerUp();// power up PHY because it was powerred up as default. We might power it down when test "Turn off PHY". 00021 00022 myled1=1; 00023 wait(0.5); 00024 myled1=0; 00025 char char_get=0; 00026 int num_get=0; 00027 char* powermode[7]={ "[1] no low power", "[2] sleep mode", "[3] deep sleep mode", "[4] power down mode", "[5] Brown-out Reduced Power mode", "[6] Deep Power Down", "[7] Turn off PHY"}; 00028 00029 00030 printf("Which frequency you want to run \r\n"); 00031 printf("[1] 96MHz \r\n"); 00032 printf("[2] 48MHz \r\n"); 00033 char_get=getchar(); 00034 num_get=char_get-48; 00035 00036 00037 switch (num_get){ 00038 case 1: setSystemFrequency(0x3, 0x1, 12, 1);break; 00039 case 2: setSystemFrequency(0x3, 0x1, 12, 2);break; 00040 default: setSystemFrequency(0x3, 0x1, 12, 1);break; 00041 } 00042 Serial pc (USBTX, USBRX); 00043 pc.printf ("num_get is %d \r\n", num_get); 00044 wait (3); 00045 num_get=0; 00046 char_get=0; 00047 00048 while (num_get>7 || num_get<1){ 00049 pc.printf("Which power mode you want to choose: \r\n"); 00050 for (int a=0;a<7;a++) 00051 pc.printf("%s \r\n", powermode[a]); 00052 char_get=pc.getc(); // get char from serial 00053 num_get=char_get-48;// convert char to int, minus 48 since ascii num start from 48 00054 if (num_get>7 || num_get<1) 00055 pc.printf("You have choosen an invalid num, please choose a correct one\r\n"); 00056 } 00057 pc.printf ("I am going to test %s\r\n",powermode[num_get-1]); 00058 myled2=1; 00059 wait(0.5); 00060 myled2=0; 00061 WakeUp::set(10); 00062 //WakeUp::set(70); 00063 switch (num_get){ 00064 case 1: break; 00065 case 2: steven_Sleep();break; 00066 case 3: steven_DeepSleep(); break; 00067 case 4: steven_PowerDown();break; 00068 case 5: steven_BOGD_PowerDown();break; 00069 case 6: steven_DeepPowerDown(); break; 00070 case 7: PHY_PowerDown(); break; 00071 default: pc.printf("Not valid input\n"); break; 00072 } 00073 while (1); 00074 }
Generated on Tue Jul 12 2022 17:06:32 by
![doxygen](doxygen.png)