a test code to implement and test LP1768 power control mode

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }