Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 00003 Serial pc(USBTX, USBRX); 00004 const int frequ = 50; //unit kHz 00005 const char dev_addr = 0x00; //fixed 00006 const char version[4] = "1.0"; 00007 00008 void testmode(void); 00009 void i2c_read(void); 00010 void i2c_write(void); 00011 void EasyFuse_prog(void); 00012 void hot_read(void); 00013 00014 void clear_screen() { 00015 int i=0; 00016 pc.printf("\033[%dm", 36);//change text color to cyan 00017 pc.printf("\033[2J");//clears screen 00018 pc.printf("\033[%d;%dH%c", 1, 1);//locate cursor to the 0,0 00019 pc.printf("\n\r"); 00020 //Print CSI059 00021 pc.printf("\n\r \332\304"); 00022 for ( i = 0; i<46; i++) pc.printf("\304"); 00023 pc.printf("\304\302"); 00024 pc.printf("\n\r \263\t\t\t\t\t\t \263"); 00025 pc.printf("\n\r \263 \334\334\334\t \334\334\334\t\334\334\334\t \334\334 \t\334\334\334\334\t \334\334 \263"); 00026 pc.printf("\n\r \263 \333 \t\333 \t \333 \t\333 \333\t\333 \t\333 \333 \263"); 00027 pc.printf("\n\r \263 \333 \t\337\337\334\334\t \333 \t\333 \333\t\337\337\337\334\t\337\334\334\333 \263"); 00028 pc.printf("\n\r \263 \333 \t \333\t \333 \t\333 \333\t \333\t \333 \263"); 00029 pc.printf("\n\r \263 \337\337\337\t\337\337\337 \t\337\337\337\t \337\337 \t\337\337\337 \t\337\337\337 \263"); 00030 pc.printf("\n\r \263\t\t\t\t\t\t \263\n\r \300\304"); 00031 for ( i = 0; i<46; i++) pc.printf("\304"); 00032 pc.printf("\304\331"); 00033 pc.printf("\n\n\n\r\tPROTYPE EVALUATION S/W"); 00034 pc.printf("\n\n\r\tVersion : %s",version); 00035 pc.printf("\n\n\r \315"); 00036 for ( i = 0; i<80; i++) pc.printf("\315"); 00037 pc.printf("\n\n\n\r"); 00038 pc.printf("\033[%dm", 32);//change text color to green 00039 } 00040 00041 void print_menu() { 00042 int i=0; 00043 pc.printf("\n\n\r\tWhat do you want to do next ?"); 00044 pc.printf("\033[%dm ", 31);//change text color to red 00045 pc.printf("\n\n\n\r\t\332\304"); 00046 for ( i = 0; i<45; i++) pc.printf("\304"); 00047 pc.printf("\304\302"); 00048 pc.printf("\n\r\t\263\t\t\t\t\t\t\263"); 00049 pc.printf("\n\r\t\263 Press 't' : to generate Test-Mode Sequence\t\263"); 00050 pc.printf("\n\r\t\263\t\t\t\t\t\t\263"); 00051 pc.printf("\n\r\t\263 Press 'r' : to perform Register Read \t\263"); 00052 pc.printf("\n\r\t\263\t\t\t\t\t\t\263"); 00053 pc.printf("\n\r\t\263 Press 'w' : to perform Register Write \t\263"); 00054 pc.printf("\n\r\t\263\t\t\t\t\t\t\263"); 00055 pc.printf("\n\r\t\263 Press 'p' : to program Easy Fuse \t\263"); 00056 pc.printf("\n\r\t\263\t\t\t\t\t\t\263"); 00057 pc.printf("\n\r\t\263 Press 'h' : to Perform Hot Register Read \t\263"); 00058 pc.printf("\n\r\t\263\t\t\t\t\t\t\263"); 00059 pc.printf("\n\r\t\263 Press 'c' : to clear screen \t\263"); 00060 pc.printf("\n\r\t\263\t\t\t\t\t\t\263"); 00061 pc.printf("\n\r\t\300\304"); 00062 for ( i = 0; i<45; i++) pc.printf("\304"); 00063 pc.printf("\304\331"); 00064 pc.printf("\033[%dm", 32);//change text color to green 00065 pc.printf("\n\n\n\r\tYour Selection : "); 00066 } 00067 00068 void draw_line() { 00069 pc.printf("\033[%dm ", 33);//change text color to yellow 00070 pc.printf("\n\n\n\n\r \315"); 00071 for ( int i = 0; i<80; i++) pc.printf("\315"); 00072 pc.printf("\033[%dm ", 32);//change text color to green 00073 pc.printf("\n\n\r"); 00074 } 00075 00076 void draw_bar() { 00077 pc.printf("\033[%dm ", 33);//change text color to yellow 00078 pc.printf("\n\n\n\n\r \334"); 00079 for ( int i = 0; i<80; i++) pc.printf("\334"); 00080 pc.printf("\033[%dm ", 32);//change text color to green 00081 pc.printf("\n\n\r"); 00082 } 00083 00084 void clear_screen_ques() { 00085 int temp; 00086 pc.printf("\n\n\r\tClear Screen (y/n) : "); 00087 temp = 0; 00088 while ( temp!='y' && temp!='n') { 00089 temp = pc.getc(); 00090 } 00091 if (temp == 'y') clear_screen(); 00092 else draw_bar(); 00093 } 00094 00095 char get_selection() { 00096 char current_char; 00097 int flag = 0; 00098 while (flag == 0) { 00099 current_char = pc.getc(); 00100 if ( current_char == 't' || current_char == 'r' || current_char == 'w' || current_char == 'p' || current_char == 'c' || current_char == 'h' ) flag = 1; 00101 else { 00102 pc.printf(" \033[%dm Invalid Chracter!! No worries, let us try again \033[%dm",41,40); 00103 pc.printf("\n\n\r\tYour Selection : "); 00104 } 00105 } 00106 return current_char; 00107 } 00108 00109 void print_note() { 00110 pc.printf("\033[%dm", 34);//change text color to blue 00111 pc.printf("\n\n\r\tNote : "); 00112 pc.printf("\n\r\t\304\304\304\304\304\304"); 00113 pc.printf("\n\n\r\t1. In Tera Term, enable 'Local echo' in Setup -> Terminal"); 00114 pc.printf("\n\n\r\t2. When not specified, please do not press 'enter' key after typing any entry "); 00115 pc.printf("\033[%dm", 32);//change text color to green 00116 draw_line(); 00117 } 00118 00119 int main() { 00120 char current_char=0; 00121 clear_screen(); 00122 print_note(); 00123 while(1) { 00124 print_menu(); 00125 current_char = get_selection(); 00126 draw_line(); 00127 00128 switch (current_char) { 00129 00130 case 't': 00131 testmode(); 00132 clear_screen_ques(); 00133 break; 00134 00135 case 'r': 00136 i2c_read(); 00137 clear_screen_ques(); 00138 break; 00139 00140 case 'w': 00141 i2c_write(); 00142 clear_screen_ques(); 00143 break; 00144 00145 case 'p': 00146 EasyFuse_prog(); 00147 clear_screen_ques(); 00148 break; 00149 00150 case 'h': 00151 hot_read(); 00152 clear_screen_ques(); 00153 break; 00154 00155 case 'c': 00156 clear_screen(); 00157 break; 00158 00159 } 00160 }//end of while 00161 }
Generated on Mon Aug 1 2022 07:04:21 by
1.7.2