SD
Dependencies: mbed SDFileSystem ds3231 AQM1602
main.cpp@0:9aa1fc6fba40, 2020-03-23 (annotated)
- Committer:
- mbedfujimura
- Date:
- Mon Mar 23 11:53:38 2020 +0000
- Revision:
- 0:9aa1fc6fba40
SD & LCD
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbedfujimura | 0:9aa1fc6fba40 | 1 | #include "mbed.h" |
mbedfujimura | 0:9aa1fc6fba40 | 2 | #include "AQM1602.h" |
mbedfujimura | 0:9aa1fc6fba40 | 3 | #include "SDFileSystem.h" |
mbedfujimura | 0:9aa1fc6fba40 | 4 | #include "ds3231.h" |
mbedfujimura | 0:9aa1fc6fba40 | 5 | #define ESC 0x1B |
mbedfujimura | 0:9aa1fc6fba40 | 6 | |
mbedfujimura | 0:9aa1fc6fba40 | 7 | //-------LCD Setting------ |
mbedfujimura | 0:9aa1fc6fba40 | 8 | I2C i2c(PB_7, PB_6);//sda,scl |
mbedfujimura | 0:9aa1fc6fba40 | 9 | AQM1602 lcd(i2c); |
mbedfujimura | 0:9aa1fc6fba40 | 10 | |
mbedfujimura | 0:9aa1fc6fba40 | 11 | //-------SD Setting------- |
mbedfujimura | 0:9aa1fc6fba40 | 12 | SDFileSystem sd(PE_6, PE_5, PE_2, PE_3 , "sd");//mosi.miso,sck,cs,mount |
mbedfujimura | 0:9aa1fc6fba40 | 13 | |
mbedfujimura | 0:9aa1fc6fba40 | 14 | //------AE Data(SPI)------ |
mbedfujimura | 0:9aa1fc6fba40 | 15 | SPI spi(PF_9, PF_8, PF_7); // mosi, miso, sclk |
mbedfujimura | 0:9aa1fc6fba40 | 16 | DigitalOut IO_CS(PF_13); |
mbedfujimura | 0:9aa1fc6fba40 | 17 | |
mbedfujimura | 0:9aa1fc6fba40 | 18 | //-----------RTC---------- |
mbedfujimura | 0:9aa1fc6fba40 | 19 | void get_user_input(char* message, uint8_t min, uint8_t max, uint32_t* member); |
mbedfujimura | 0:9aa1fc6fba40 | 20 | void get_user_input(char* message, uint8_t min, uint8_t max, bool* member); |
mbedfujimura | 0:9aa1fc6fba40 | 21 | |
mbedfujimura | 0:9aa1fc6fba40 | 22 | //--------IO Enable-------- |
mbedfujimura | 0:9aa1fc6fba40 | 23 | DigitalOut IO_Enable(PD_9); |
mbedfujimura | 0:9aa1fc6fba40 | 24 | |
mbedfujimura | 0:9aa1fc6fba40 | 25 | //-----AE Interrupt-------- |
mbedfujimura | 0:9aa1fc6fba40 | 26 | InterruptIn DE(PG_8);//IO10 Analog Bord IO9 |
mbedfujimura | 0:9aa1fc6fba40 | 27 | |
mbedfujimura | 0:9aa1fc6fba40 | 28 | //--------------------------------- |
mbedfujimura | 0:9aa1fc6fba40 | 29 | // HPF Setting |
mbedfujimura | 0:9aa1fc6fba40 | 30 | // 0:THRU 1:30kHz 2:100kHz 3:200kHz |
mbedfujimura | 0:9aa1fc6fba40 | 31 | //--------------------------------- |
mbedfujimura | 0:9aa1fc6fba40 | 32 | BusInOut IO_HPF(PD_10,PD_14); |
mbedfujimura | 0:9aa1fc6fba40 | 33 | |
mbedfujimura | 0:9aa1fc6fba40 | 34 | //--------------------------------- |
mbedfujimura | 0:9aa1fc6fba40 | 35 | // Gain Setting |
mbedfujimura | 0:9aa1fc6fba40 | 36 | // 0:0dB 1:10dB 2:20dB 3:30dB 4:40dB |
mbedfujimura | 0:9aa1fc6fba40 | 37 | //--------------------------------- |
mbedfujimura | 0:9aa1fc6fba40 | 38 | BusInOut IO_Gain(PD_15,PE_14,PE_15,PG_2);//IO1,IO2,IO3 Analog Bord IO0,IO1,IO2,IO3 |
mbedfujimura | 0:9aa1fc6fba40 | 39 | |
mbedfujimura | 0:9aa1fc6fba40 | 40 | //-----I/O Setting-------- |
mbedfujimura | 0:9aa1fc6fba40 | 41 | DigitalOut IO5(PG_3);//Analog Bord IO4 |
mbedfujimura | 0:9aa1fc6fba40 | 42 | DigitalOut IO6(PG_4);//Analog Bord IO5 |
mbedfujimura | 0:9aa1fc6fba40 | 43 | DigitalOut IO7(PG_5);//Analog Bord IO6 |
mbedfujimura | 0:9aa1fc6fba40 | 44 | DigitalOut IO8(PG_6);//Analog Bord IO7 |
mbedfujimura | 0:9aa1fc6fba40 | 45 | DigitalOut IO9(PG_7);//Analog Bord IO8 |
mbedfujimura | 0:9aa1fc6fba40 | 46 | |
mbedfujimura | 0:9aa1fc6fba40 | 47 | //-----------Alarm--------- |
mbedfujimura | 0:9aa1fc6fba40 | 48 | DigitalOut Ararm(PF_14); |
mbedfujimura | 0:9aa1fc6fba40 | 49 | //---------Encoder--------- |
mbedfujimura | 0:9aa1fc6fba40 | 50 | DigitalIn Encorder_SW(PA_15); //SW |
mbedfujimura | 0:9aa1fc6fba40 | 51 | //DigitalIn Encorder_A(PD_0); //A |
mbedfujimura | 0:9aa1fc6fba40 | 52 | DigitalIn Encorder_B(PD_1); //B |
mbedfujimura | 0:9aa1fc6fba40 | 53 | InterruptIn Encorder_A(PD_0); //A |
mbedfujimura | 0:9aa1fc6fba40 | 54 | |
mbedfujimura | 0:9aa1fc6fba40 | 55 | |
mbedfujimura | 0:9aa1fc6fba40 | 56 | //-----Serial Setting------ |
mbedfujimura | 0:9aa1fc6fba40 | 57 | Serial rs232 (PB_10, PB_11); |
mbedfujimura | 0:9aa1fc6fba40 | 58 | |
mbedfujimura | 0:9aa1fc6fba40 | 59 | uint16_t WaveData1[32768]; |
mbedfujimura | 0:9aa1fc6fba40 | 60 | uint16_t WaveData2[32768]; |
mbedfujimura | 0:9aa1fc6fba40 | 61 | int DataEnable; |
mbedfujimura | 0:9aa1fc6fba40 | 62 | int EncAEnable; |
mbedfujimura | 0:9aa1fc6fba40 | 63 | int EncCount; |
mbedfujimura | 0:9aa1fc6fba40 | 64 | |
mbedfujimura | 0:9aa1fc6fba40 | 65 | //------AE Interrupt Main------ |
mbedfujimura | 0:9aa1fc6fba40 | 66 | void GetData(){ |
mbedfujimura | 0:9aa1fc6fba40 | 67 | DataEnable=1; |
mbedfujimura | 0:9aa1fc6fba40 | 68 | } |
mbedfujimura | 0:9aa1fc6fba40 | 69 | |
mbedfujimura | 0:9aa1fc6fba40 | 70 | //-------Encoder Interrupt------ |
mbedfujimura | 0:9aa1fc6fba40 | 71 | void EncCheck(){ |
mbedfujimura | 0:9aa1fc6fba40 | 72 | EncAEnable=1; |
mbedfujimura | 0:9aa1fc6fba40 | 73 | //wait_ms(2); |
mbedfujimura | 0:9aa1fc6fba40 | 74 | } |
mbedfujimura | 0:9aa1fc6fba40 | 75 | |
mbedfujimura | 0:9aa1fc6fba40 | 76 | void menu1(){ |
mbedfujimura | 0:9aa1fc6fba40 | 77 | switch(EncCount){ |
mbedfujimura | 0:9aa1fc6fba40 | 78 | case(1): |
mbedfujimura | 0:9aa1fc6fba40 | 79 | lcd.locate(0,0);lcd.printf(" 1.Mode "); |
mbedfujimura | 0:9aa1fc6fba40 | 80 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 81 | case(2): |
mbedfujimura | 0:9aa1fc6fba40 | 82 | lcd.locate(0,0);lcd.printf(" 2.Gain "); |
mbedfujimura | 0:9aa1fc6fba40 | 83 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 84 | case(3): |
mbedfujimura | 0:9aa1fc6fba40 | 85 | lcd.locate(0,0);lcd.printf(" 3.HPF "); |
mbedfujimura | 0:9aa1fc6fba40 | 86 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 87 | case(4): |
mbedfujimura | 0:9aa1fc6fba40 | 88 | lcd.locate(0,0);lcd.printf(" 4.Interval "); |
mbedfujimura | 0:9aa1fc6fba40 | 89 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 90 | case(5): |
mbedfujimura | 0:9aa1fc6fba40 | 91 | lcd.locate(0,0);lcd.printf(" 5.EXIT "); |
mbedfujimura | 0:9aa1fc6fba40 | 92 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 93 | } |
mbedfujimura | 0:9aa1fc6fba40 | 94 | } |
mbedfujimura | 0:9aa1fc6fba40 | 95 | |
mbedfujimura | 0:9aa1fc6fba40 | 96 | void menu2(){ |
mbedfujimura | 0:9aa1fc6fba40 | 97 | switch(EncCount){ |
mbedfujimura | 0:9aa1fc6fba40 | 98 | case(1): |
mbedfujimura | 0:9aa1fc6fba40 | 99 | lcd.locate(0,0);lcd.printf(" Gain=0dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 100 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 101 | case(2): |
mbedfujimura | 0:9aa1fc6fba40 | 102 | lcd.locate(0,0);lcd.printf(" Gain=10dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 103 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 104 | case(3): |
mbedfujimura | 0:9aa1fc6fba40 | 105 | lcd.locate(0,0);lcd.printf(" Gain=20dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 106 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 107 | case(4): |
mbedfujimura | 0:9aa1fc6fba40 | 108 | lcd.locate(0,0);lcd.printf(" Gain=30dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 109 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 110 | case(5): |
mbedfujimura | 0:9aa1fc6fba40 | 111 | lcd.locate(0,0);lcd.printf(" Gain=40dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 112 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 113 | case(6): |
mbedfujimura | 0:9aa1fc6fba40 | 114 | lcd.locate(0,0);lcd.printf(" EXIT "); |
mbedfujimura | 0:9aa1fc6fba40 | 115 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 116 | } |
mbedfujimura | 0:9aa1fc6fba40 | 117 | } |
mbedfujimura | 0:9aa1fc6fba40 | 118 | |
mbedfujimura | 0:9aa1fc6fba40 | 119 | int main() |
mbedfujimura | 0:9aa1fc6fba40 | 120 | { |
mbedfujimura | 0:9aa1fc6fba40 | 121 | //------Serial Setting------ |
mbedfujimura | 0:9aa1fc6fba40 | 122 | rs232.baud(230400); |
mbedfujimura | 0:9aa1fc6fba40 | 123 | //---------Init LCD--------- |
mbedfujimura | 0:9aa1fc6fba40 | 124 | lcd.init(); |
mbedfujimura | 0:9aa1fc6fba40 | 125 | //---Mount the filesystem--- |
mbedfujimura | 0:9aa1fc6fba40 | 126 | sd.mount(); |
mbedfujimura | 0:9aa1fc6fba40 | 127 | //--------IO Power ON------- |
mbedfujimura | 0:9aa1fc6fba40 | 128 | wait_ms(100); |
mbedfujimura | 0:9aa1fc6fba40 | 129 | IO_Enable=1; |
mbedfujimura | 0:9aa1fc6fba40 | 130 | //------Initial Display----- |
mbedfujimura | 0:9aa1fc6fba40 | 131 | lcd.clear(); |
mbedfujimura | 0:9aa1fc6fba40 | 132 | lcd.setDispFlag(1,0,0); //Cursole消す |
mbedfujimura | 0:9aa1fc6fba40 | 133 | //-------SPI Setting------- |
mbedfujimura | 0:9aa1fc6fba40 | 134 | IO_CS = 1; |
mbedfujimura | 0:9aa1fc6fba40 | 135 | spi.format(16,0); |
mbedfujimura | 0:9aa1fc6fba40 | 136 | spi.frequency(1000000); |
mbedfujimura | 0:9aa1fc6fba40 | 137 | |
mbedfujimura | 0:9aa1fc6fba40 | 138 | //-----------------------------SD test------------------------------ |
mbedfujimura | 0:9aa1fc6fba40 | 139 | lcd.clear(); |
mbedfujimura | 0:9aa1fc6fba40 | 140 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 141 | lcd.printf("WR to SD card "); |
mbedfujimura | 0:9aa1fc6fba40 | 142 | wait_ms(100); |
mbedfujimura | 0:9aa1fc6fba40 | 143 | |
mbedfujimura | 0:9aa1fc6fba40 | 144 | //----------SD書き込み試験-------- |
mbedfujimura | 0:9aa1fc6fba40 | 145 | FILE *fp = fopen("/sd/sdtest.txt", "w"); // 追加書き込み |
mbedfujimura | 0:9aa1fc6fba40 | 146 | |
mbedfujimura | 0:9aa1fc6fba40 | 147 | if (fp != NULL) |
mbedfujimura | 0:9aa1fc6fba40 | 148 | { |
mbedfujimura | 0:9aa1fc6fba40 | 149 | fprintf(fp, "SD カードのテストファイルです.\r\n"); |
mbedfujimura | 0:9aa1fc6fba40 | 150 | fclose(fp); |
mbedfujimura | 0:9aa1fc6fba40 | 151 | |
mbedfujimura | 0:9aa1fc6fba40 | 152 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 153 | lcd.printf(" SDWR SUCCESS! "); |
mbedfujimura | 0:9aa1fc6fba40 | 154 | wait_ms(100); |
mbedfujimura | 0:9aa1fc6fba40 | 155 | } |
mbedfujimura | 0:9aa1fc6fba40 | 156 | else{ |
mbedfujimura | 0:9aa1fc6fba40 | 157 | lcd.clear(); |
mbedfujimura | 0:9aa1fc6fba40 | 158 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 159 | lcd.printf(" SD FAILED! "); |
mbedfujimura | 0:9aa1fc6fba40 | 160 | while(1); |
mbedfujimura | 0:9aa1fc6fba40 | 161 | } |
mbedfujimura | 0:9aa1fc6fba40 | 162 | |
mbedfujimura | 0:9aa1fc6fba40 | 163 | //----------SD読み出し試験-------- |
mbedfujimura | 0:9aa1fc6fba40 | 164 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 165 | lcd.printf("Reading from SD "); |
mbedfujimura | 0:9aa1fc6fba40 | 166 | fp = fopen("/sd/sdtest.txt", "r"); |
mbedfujimura | 0:9aa1fc6fba40 | 167 | if (fp != NULL) |
mbedfujimura | 0:9aa1fc6fba40 | 168 | { |
mbedfujimura | 0:9aa1fc6fba40 | 169 | char str[256]; |
mbedfujimura | 0:9aa1fc6fba40 | 170 | while (fgets(str, 256, fp) != NULL) |
mbedfujimura | 0:9aa1fc6fba40 | 171 | //rs232.printf("%s", str); |
mbedfujimura | 0:9aa1fc6fba40 | 172 | fclose(fp); |
mbedfujimura | 0:9aa1fc6fba40 | 173 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 174 | lcd.printf(" SDRD SUCCESS! "); |
mbedfujimura | 0:9aa1fc6fba40 | 175 | wait_ms(100); |
mbedfujimura | 0:9aa1fc6fba40 | 176 | } |
mbedfujimura | 0:9aa1fc6fba40 | 177 | else{ |
mbedfujimura | 0:9aa1fc6fba40 | 178 | lcd.clear(); |
mbedfujimura | 0:9aa1fc6fba40 | 179 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 180 | lcd.printf(" SD FAILED! "); |
mbedfujimura | 0:9aa1fc6fba40 | 181 | while(1); |
mbedfujimura | 0:9aa1fc6fba40 | 182 | } |
mbedfujimura | 0:9aa1fc6fba40 | 183 | |
mbedfujimura | 0:9aa1fc6fba40 | 184 | //--------チェック結果の表示-------- |
mbedfujimura | 0:9aa1fc6fba40 | 185 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 186 | lcd.printf(" CHECK All OK! "); |
mbedfujimura | 0:9aa1fc6fba40 | 187 | wait(1); |
mbedfujimura | 0:9aa1fc6fba40 | 188 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 189 | lcd.printf(" FUJIMURA CREST"); |
mbedfujimura | 0:9aa1fc6fba40 | 190 | lcd.locate(0,1); |
mbedfujimura | 0:9aa1fc6fba40 | 191 | lcd.printf(" FCAS-M101 "); |
mbedfujimura | 0:9aa1fc6fba40 | 192 | wait(1); |
mbedfujimura | 0:9aa1fc6fba40 | 193 | |
mbedfujimura | 0:9aa1fc6fba40 | 194 | //-----------------------------RTCセッティング------------------------------ |
mbedfujimura | 0:9aa1fc6fba40 | 195 | //Ds3231 rtc(PB_7, PB_6); |
mbedfujimura | 0:9aa1fc6fba40 | 196 | Ds3231 rtc(PF_0, PF_1); |
mbedfujimura | 0:9aa1fc6fba40 | 197 | time_t epoch_time; |
mbedfujimura | 0:9aa1fc6fba40 | 198 | |
mbedfujimura | 0:9aa1fc6fba40 | 199 | //default, use bit masks in ds3231.h for desired operation |
mbedfujimura | 0:9aa1fc6fba40 | 200 | ds3231_cntl_stat_t rtc_control_status = {0,0}; |
mbedfujimura | 0:9aa1fc6fba40 | 201 | ds3231_time_t rtc_time; |
mbedfujimura | 0:9aa1fc6fba40 | 202 | ds3231_calendar_t rtc_calendar; |
mbedfujimura | 0:9aa1fc6fba40 | 203 | |
mbedfujimura | 0:9aa1fc6fba40 | 204 | //******************************* メインルーチン ******************************* |
mbedfujimura | 0:9aa1fc6fba40 | 205 | uint16_t spi_data[16]; |
mbedfujimura | 0:9aa1fc6fba40 | 206 | uint16_t Amplitude; |
mbedfujimura | 0:9aa1fc6fba40 | 207 | char TxDataChar1,TxDataChar2; |
mbedfujimura | 0:9aa1fc6fba40 | 208 | char moji[36]; |
mbedfujimura | 0:9aa1fc6fba40 | 209 | uint32_t n,i; |
mbedfujimura | 0:9aa1fc6fba40 | 210 | int Gain; //Gain |
mbedfujimura | 0:9aa1fc6fba40 | 211 | int StartFlag=1; |
mbedfujimura | 0:9aa1fc6fba40 | 212 | int menuFlag =1; |
mbedfujimura | 0:9aa1fc6fba40 | 213 | int EncCount2; |
mbedfujimura | 0:9aa1fc6fba40 | 214 | |
mbedfujimura | 0:9aa1fc6fba40 | 215 | //---------BUS(ゲイン)の設定----------- |
mbedfujimura | 0:9aa1fc6fba40 | 216 | IO_Gain.output(); |
mbedfujimura | 0:9aa1fc6fba40 | 217 | IO_Gain=2; |
mbedfujimura | 0:9aa1fc6fba40 | 218 | |
mbedfujimura | 0:9aa1fc6fba40 | 219 | //---------------HPF 30kHz------------ |
mbedfujimura | 0:9aa1fc6fba40 | 220 | IO_HPF.output(); |
mbedfujimura | 0:9aa1fc6fba40 | 221 | IO_HPF=0; |
mbedfujimura | 0:9aa1fc6fba40 | 222 | |
mbedfujimura | 0:9aa1fc6fba40 | 223 | //---------------割り込みON------------ |
mbedfujimura | 0:9aa1fc6fba40 | 224 | DE.rise(&GetData); |
mbedfujimura | 0:9aa1fc6fba40 | 225 | Encorder_A.rise(&EncCheck); |
mbedfujimura | 0:9aa1fc6fba40 | 226 | |
mbedfujimura | 0:9aa1fc6fba40 | 227 | |
mbedfujimura | 0:9aa1fc6fba40 | 228 | |
mbedfujimura | 0:9aa1fc6fba40 | 229 | |
mbedfujimura | 0:9aa1fc6fba40 | 230 | while(1) { |
mbedfujimura | 0:9aa1fc6fba40 | 231 | //---------------------------------------------------------------- |
mbedfujimura | 0:9aa1fc6fba40 | 232 | while(StartFlag){ |
mbedfujimura | 0:9aa1fc6fba40 | 233 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 234 | lcd.printf(" Wait START! "); |
mbedfujimura | 0:9aa1fc6fba40 | 235 | lcd.locate(0,1); |
mbedfujimura | 0:9aa1fc6fba40 | 236 | lcd.printf(" Menu>Push long"); |
mbedfujimura | 0:9aa1fc6fba40 | 237 | |
mbedfujimura | 0:9aa1fc6fba40 | 238 | if(Encorder_SW==0){ |
mbedfujimura | 0:9aa1fc6fba40 | 239 | wait_ms(300); |
mbedfujimura | 0:9aa1fc6fba40 | 240 | StartFlag=0; |
mbedfujimura | 0:9aa1fc6fba40 | 241 | //----------menu選択-------- |
mbedfujimura | 0:9aa1fc6fba40 | 242 | if(Encorder_SW==0){ |
mbedfujimura | 0:9aa1fc6fba40 | 243 | StartFlag=1; |
mbedfujimura | 0:9aa1fc6fba40 | 244 | lcd.clear(); |
mbedfujimura | 0:9aa1fc6fba40 | 245 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 246 | lcd.printf(" -----Menu----- "); |
mbedfujimura | 0:9aa1fc6fba40 | 247 | wait_ms(500); |
mbedfujimura | 0:9aa1fc6fba40 | 248 | |
mbedfujimura | 0:9aa1fc6fba40 | 249 | //---------------------Select menu----------------- |
mbedfujimura | 0:9aa1fc6fba40 | 250 | while(menuFlag){ |
mbedfujimura | 0:9aa1fc6fba40 | 251 | //----------Encoder Check-------- |
mbedfujimura | 0:9aa1fc6fba40 | 252 | if(EncAEnable==1){ |
mbedfujimura | 0:9aa1fc6fba40 | 253 | wait_us(100); |
mbedfujimura | 0:9aa1fc6fba40 | 254 | if(Encorder_B==0){ |
mbedfujimura | 0:9aa1fc6fba40 | 255 | EncCount=EncCount+1; |
mbedfujimura | 0:9aa1fc6fba40 | 256 | }else{ |
mbedfujimura | 0:9aa1fc6fba40 | 257 | if(EncCount!=0){ |
mbedfujimura | 0:9aa1fc6fba40 | 258 | EncCount=EncCount-1; |
mbedfujimura | 0:9aa1fc6fba40 | 259 | } |
mbedfujimura | 0:9aa1fc6fba40 | 260 | } |
mbedfujimura | 0:9aa1fc6fba40 | 261 | menu1(); |
mbedfujimura | 0:9aa1fc6fba40 | 262 | EncAEnable=0; |
mbedfujimura | 0:9aa1fc6fba40 | 263 | } |
mbedfujimura | 0:9aa1fc6fba40 | 264 | if(EncCount>5){ |
mbedfujimura | 0:9aa1fc6fba40 | 265 | EncCount=5; |
mbedfujimura | 0:9aa1fc6fba40 | 266 | } |
mbedfujimura | 0:9aa1fc6fba40 | 267 | //----------Encoder End-------- |
mbedfujimura | 0:9aa1fc6fba40 | 268 | |
mbedfujimura | 0:9aa1fc6fba40 | 269 | if(Encorder_SW==0){ |
mbedfujimura | 0:9aa1fc6fba40 | 270 | if(EncCount==2){ |
mbedfujimura | 0:9aa1fc6fba40 | 271 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 272 | lcd.printf(" Select Gain "); |
mbedfujimura | 0:9aa1fc6fba40 | 273 | EncCount=1; |
mbedfujimura | 0:9aa1fc6fba40 | 274 | while(1){ |
mbedfujimura | 0:9aa1fc6fba40 | 275 | //----------Encoder Check-------- |
mbedfujimura | 0:9aa1fc6fba40 | 276 | if(EncAEnable==1){ |
mbedfujimura | 0:9aa1fc6fba40 | 277 | wait_us(100); |
mbedfujimura | 0:9aa1fc6fba40 | 278 | if(Encorder_B==0){ |
mbedfujimura | 0:9aa1fc6fba40 | 279 | EncCount=EncCount+1; |
mbedfujimura | 0:9aa1fc6fba40 | 280 | if(EncCount>6){ |
mbedfujimura | 0:9aa1fc6fba40 | 281 | EncCount=6; |
mbedfujimura | 0:9aa1fc6fba40 | 282 | } |
mbedfujimura | 0:9aa1fc6fba40 | 283 | }else{ |
mbedfujimura | 0:9aa1fc6fba40 | 284 | if(EncCount!=0){ |
mbedfujimura | 0:9aa1fc6fba40 | 285 | EncCount=EncCount-1; |
mbedfujimura | 0:9aa1fc6fba40 | 286 | } |
mbedfujimura | 0:9aa1fc6fba40 | 287 | } |
mbedfujimura | 0:9aa1fc6fba40 | 288 | menu2(); |
mbedfujimura | 0:9aa1fc6fba40 | 289 | EncAEnable=0; |
mbedfujimura | 0:9aa1fc6fba40 | 290 | } |
mbedfujimura | 0:9aa1fc6fba40 | 291 | //----------Encoder End-------- |
mbedfujimura | 0:9aa1fc6fba40 | 292 | if(Encorder_SW==0){ |
mbedfujimura | 0:9aa1fc6fba40 | 293 | if(EncCount!=6){ |
mbedfujimura | 0:9aa1fc6fba40 | 294 | switch(EncCount){ |
mbedfujimura | 0:9aa1fc6fba40 | 295 | case(1): |
mbedfujimura | 0:9aa1fc6fba40 | 296 | IO_Gain=0; |
mbedfujimura | 0:9aa1fc6fba40 | 297 | lcd.locate(0,0);lcd.printf(" Set Gain=0dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 298 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 299 | case(2): |
mbedfujimura | 0:9aa1fc6fba40 | 300 | IO_Gain=1; |
mbedfujimura | 0:9aa1fc6fba40 | 301 | lcd.locate(0,0);lcd.printf(" Set Gain=10dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 302 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 303 | case(3): |
mbedfujimura | 0:9aa1fc6fba40 | 304 | IO_Gain=2; |
mbedfujimura | 0:9aa1fc6fba40 | 305 | lcd.locate(0,0);lcd.printf(" Set Gain=20dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 306 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 307 | case(4): |
mbedfujimura | 0:9aa1fc6fba40 | 308 | IO_Gain=3; |
mbedfujimura | 0:9aa1fc6fba40 | 309 | lcd.locate(0,0);lcd.printf(" Set Gain=30dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 310 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 311 | case(5): |
mbedfujimura | 0:9aa1fc6fba40 | 312 | IO_Gain=4; |
mbedfujimura | 0:9aa1fc6fba40 | 313 | lcd.locate(0,0);lcd.printf(" Set Gain=40dB "); |
mbedfujimura | 0:9aa1fc6fba40 | 314 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 315 | } |
mbedfujimura | 0:9aa1fc6fba40 | 316 | } |
mbedfujimura | 0:9aa1fc6fba40 | 317 | if(EncCount==6){ //menu終了 |
mbedfujimura | 0:9aa1fc6fba40 | 318 | menuFlag=0; |
mbedfujimura | 0:9aa1fc6fba40 | 319 | StartFlag=1; |
mbedfujimura | 0:9aa1fc6fba40 | 320 | wait_ms(50); |
mbedfujimura | 0:9aa1fc6fba40 | 321 | break; |
mbedfujimura | 0:9aa1fc6fba40 | 322 | } |
mbedfujimura | 0:9aa1fc6fba40 | 323 | } |
mbedfujimura | 0:9aa1fc6fba40 | 324 | } |
mbedfujimura | 0:9aa1fc6fba40 | 325 | } |
mbedfujimura | 0:9aa1fc6fba40 | 326 | |
mbedfujimura | 0:9aa1fc6fba40 | 327 | if(EncCount==5){ //menu終了 |
mbedfujimura | 0:9aa1fc6fba40 | 328 | menuFlag=0; |
mbedfujimura | 0:9aa1fc6fba40 | 329 | StartFlag=1; |
mbedfujimura | 0:9aa1fc6fba40 | 330 | wait_ms(50); |
mbedfujimura | 0:9aa1fc6fba40 | 331 | } |
mbedfujimura | 0:9aa1fc6fba40 | 332 | } |
mbedfujimura | 0:9aa1fc6fba40 | 333 | } |
mbedfujimura | 0:9aa1fc6fba40 | 334 | //-----------------Select menu End------------------ |
mbedfujimura | 0:9aa1fc6fba40 | 335 | } |
mbedfujimura | 0:9aa1fc6fba40 | 336 | menuFlag=1; |
mbedfujimura | 0:9aa1fc6fba40 | 337 | EncCount=0; |
mbedfujimura | 0:9aa1fc6fba40 | 338 | } |
mbedfujimura | 0:9aa1fc6fba40 | 339 | } |
mbedfujimura | 0:9aa1fc6fba40 | 340 | //---------------------------------------------------------------- |
mbedfujimura | 0:9aa1fc6fba40 | 341 | |
mbedfujimura | 0:9aa1fc6fba40 | 342 | |
mbedfujimura | 0:9aa1fc6fba40 | 343 | if(n==0){ |
mbedfujimura | 0:9aa1fc6fba40 | 344 | //----------データ保存SDオープン-------- |
mbedfujimura | 0:9aa1fc6fba40 | 345 | //new epoch time fx |
mbedfujimura | 0:9aa1fc6fba40 | 346 | epoch_time = rtc.get_epoch(); |
mbedfujimura | 0:9aa1fc6fba40 | 347 | strftime(moji, 32, "/sd/%m%d_%I%M%S.csv", localtime(&epoch_time)); |
mbedfujimura | 0:9aa1fc6fba40 | 348 | fp = fopen(moji, "a+"); // 追加書き込み |
mbedfujimura | 0:9aa1fc6fba40 | 349 | } |
mbedfujimura | 0:9aa1fc6fba40 | 350 | |
mbedfujimura | 0:9aa1fc6fba40 | 351 | if(DataEnable==1){ |
mbedfujimura | 0:9aa1fc6fba40 | 352 | IO_CS=0; |
mbedfujimura | 0:9aa1fc6fba40 | 353 | spi_data[0] = spi.write(Gain); |
mbedfujimura | 0:9aa1fc6fba40 | 354 | IO_CS=1; |
mbedfujimura | 0:9aa1fc6fba40 | 355 | |
mbedfujimura | 0:9aa1fc6fba40 | 356 | TxDataChar1=(spi_data[0] & 0x007f); //0-6 |
mbedfujimura | 0:9aa1fc6fba40 | 357 | TxDataChar2=(spi_data[0] & 0xff80)>>7; //7-12 |
mbedfujimura | 0:9aa1fc6fba40 | 358 | //SDカードへ包絡線検波波形データ書き込み |
mbedfujimura | 0:9aa1fc6fba40 | 359 | Amplitude=TxDataChar2*128+TxDataChar1; |
mbedfujimura | 0:9aa1fc6fba40 | 360 | |
mbedfujimura | 0:9aa1fc6fba40 | 361 | if(n==0){ |
mbedfujimura | 0:9aa1fc6fba40 | 362 | lcd.clear(); |
mbedfujimura | 0:9aa1fc6fba40 | 363 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 364 | lcd.printf(" ----START----"); |
mbedfujimura | 0:9aa1fc6fba40 | 365 | } |
mbedfujimura | 0:9aa1fc6fba40 | 366 | |
mbedfujimura | 0:9aa1fc6fba40 | 367 | if(n<4096){ |
mbedfujimura | 0:9aa1fc6fba40 | 368 | WaveData1[n]=Amplitude; |
mbedfujimura | 0:9aa1fc6fba40 | 369 | } |
mbedfujimura | 0:9aa1fc6fba40 | 370 | |
mbedfujimura | 0:9aa1fc6fba40 | 371 | DataEnable=0; |
mbedfujimura | 0:9aa1fc6fba40 | 372 | n=n+1; |
mbedfujimura | 0:9aa1fc6fba40 | 373 | } |
mbedfujimura | 0:9aa1fc6fba40 | 374 | |
mbedfujimura | 0:9aa1fc6fba40 | 375 | if(n==4096){ |
mbedfujimura | 0:9aa1fc6fba40 | 376 | //new epoch time fx |
mbedfujimura | 0:9aa1fc6fba40 | 377 | epoch_time = rtc.get_epoch(); |
mbedfujimura | 0:9aa1fc6fba40 | 378 | |
mbedfujimura | 0:9aa1fc6fba40 | 379 | strftime(moji, 32, "%m/%d %I:%M:%S \r\n", localtime(&epoch_time)); |
mbedfujimura | 0:9aa1fc6fba40 | 380 | fprintf(fp, moji); |
mbedfujimura | 0:9aa1fc6fba40 | 381 | |
mbedfujimura | 0:9aa1fc6fba40 | 382 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 383 | lcd.printf(" --Save Data-- "); |
mbedfujimura | 0:9aa1fc6fba40 | 384 | |
mbedfujimura | 0:9aa1fc6fba40 | 385 | while(i<4096){ |
mbedfujimura | 0:9aa1fc6fba40 | 386 | if (fp != NULL){ |
mbedfujimura | 0:9aa1fc6fba40 | 387 | sprintf(moji,"%d\r\n",WaveData1[i]); |
mbedfujimura | 0:9aa1fc6fba40 | 388 | fprintf(fp, moji); |
mbedfujimura | 0:9aa1fc6fba40 | 389 | }else{ |
mbedfujimura | 0:9aa1fc6fba40 | 390 | lcd.clear(); |
mbedfujimura | 0:9aa1fc6fba40 | 391 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 392 | lcd.printf(" SD FAILED! "); |
mbedfujimura | 0:9aa1fc6fba40 | 393 | while(1); |
mbedfujimura | 0:9aa1fc6fba40 | 394 | } |
mbedfujimura | 0:9aa1fc6fba40 | 395 | i=i+1; |
mbedfujimura | 0:9aa1fc6fba40 | 396 | } |
mbedfujimura | 0:9aa1fc6fba40 | 397 | fclose(fp); |
mbedfujimura | 0:9aa1fc6fba40 | 398 | lcd.locate(0,0); |
mbedfujimura | 0:9aa1fc6fba40 | 399 | lcd.printf("Data Save END!"); |
mbedfujimura | 0:9aa1fc6fba40 | 400 | wait_ms(500); |
mbedfujimura | 0:9aa1fc6fba40 | 401 | n=0; |
mbedfujimura | 0:9aa1fc6fba40 | 402 | i=0; |
mbedfujimura | 0:9aa1fc6fba40 | 403 | StartFlag=1; |
mbedfujimura | 0:9aa1fc6fba40 | 404 | } |
mbedfujimura | 0:9aa1fc6fba40 | 405 | |
mbedfujimura | 0:9aa1fc6fba40 | 406 | |
mbedfujimura | 0:9aa1fc6fba40 | 407 | } |
mbedfujimura | 0:9aa1fc6fba40 | 408 | |
mbedfujimura | 0:9aa1fc6fba40 | 409 | |
mbedfujimura | 0:9aa1fc6fba40 | 410 | |
mbedfujimura | 0:9aa1fc6fba40 | 411 | /* |
mbedfujimura | 0:9aa1fc6fba40 | 412 | rtc.set_cntl_stat_reg(rtc_control_status); |
mbedfujimura | 0:9aa1fc6fba40 | 413 | |
mbedfujimura | 0:9aa1fc6fba40 | 414 | //get day from user |
mbedfujimura | 0:9aa1fc6fba40 | 415 | get_user_input("\n\rPlease enter day of week, 1 for Sunday (1-7): ", 1, |
mbedfujimura | 0:9aa1fc6fba40 | 416 | 7, &rtc_calendar.day); |
mbedfujimura | 0:9aa1fc6fba40 | 417 | |
mbedfujimura | 0:9aa1fc6fba40 | 418 | //get day of month from user |
mbedfujimura | 0:9aa1fc6fba40 | 419 | get_user_input("\n\rPlease enter day of month (1-31): ", 1, 31, |
mbedfujimura | 0:9aa1fc6fba40 | 420 | &rtc_calendar.date); |
mbedfujimura | 0:9aa1fc6fba40 | 421 | |
mbedfujimura | 0:9aa1fc6fba40 | 422 | //get month from user |
mbedfujimura | 0:9aa1fc6fba40 | 423 | get_user_input("\n\rPlease enter the month, 1 for January (1-12): ", 1, |
mbedfujimura | 0:9aa1fc6fba40 | 424 | 12, &rtc_calendar.month); |
mbedfujimura | 0:9aa1fc6fba40 | 425 | |
mbedfujimura | 0:9aa1fc6fba40 | 426 | //get year from user |
mbedfujimura | 0:9aa1fc6fba40 | 427 | get_user_input("\n\rPlease enter the year (0-99): ",0, 99, |
mbedfujimura | 0:9aa1fc6fba40 | 428 | &rtc_calendar.year); |
mbedfujimura | 0:9aa1fc6fba40 | 429 | |
mbedfujimura | 0:9aa1fc6fba40 | 430 | //Get time mode |
mbedfujimura | 0:9aa1fc6fba40 | 431 | get_user_input("\n\rWhat time mode? 1 for 12hr 0 for 24hr: ", 0, 1, |
mbedfujimura | 0:9aa1fc6fba40 | 432 | &rtc_time.mode); |
mbedfujimura | 0:9aa1fc6fba40 | 433 | |
mbedfujimura | 0:9aa1fc6fba40 | 434 | if(rtc_time.mode) |
mbedfujimura | 0:9aa1fc6fba40 | 435 | { |
mbedfujimura | 0:9aa1fc6fba40 | 436 | //Get AM/PM status |
mbedfujimura | 0:9aa1fc6fba40 | 437 | get_user_input("\n\rIs it AM or PM? 0 for AM 1 for PM: ", 0, 1, |
mbedfujimura | 0:9aa1fc6fba40 | 438 | &rtc_time.am_pm); |
mbedfujimura | 0:9aa1fc6fba40 | 439 | //Get hour from user |
mbedfujimura | 0:9aa1fc6fba40 | 440 | get_user_input("\n\rPlease enter the hour (1-12): ", 1, 12, |
mbedfujimura | 0:9aa1fc6fba40 | 441 | &rtc_time.hours); |
mbedfujimura | 0:9aa1fc6fba40 | 442 | } |
mbedfujimura | 0:9aa1fc6fba40 | 443 | else |
mbedfujimura | 0:9aa1fc6fba40 | 444 | { |
mbedfujimura | 0:9aa1fc6fba40 | 445 | //Get hour from user |
mbedfujimura | 0:9aa1fc6fba40 | 446 | get_user_input("\n\rPlease enter the hour (0-23): ", 0, 23, |
mbedfujimura | 0:9aa1fc6fba40 | 447 | &rtc_time.hours); |
mbedfujimura | 0:9aa1fc6fba40 | 448 | } |
mbedfujimura | 0:9aa1fc6fba40 | 449 | |
mbedfujimura | 0:9aa1fc6fba40 | 450 | //Get minutes from user |
mbedfujimura | 0:9aa1fc6fba40 | 451 | get_user_input("\n\rPlease enter the minute (0-59): ", 0, 59, |
mbedfujimura | 0:9aa1fc6fba40 | 452 | &rtc_time.minutes); |
mbedfujimura | 0:9aa1fc6fba40 | 453 | |
mbedfujimura | 0:9aa1fc6fba40 | 454 | |
mbedfujimura | 0:9aa1fc6fba40 | 455 | //Get seconds from user |
mbedfujimura | 0:9aa1fc6fba40 | 456 | get_user_input("\n\rPlease enter the second (0-59): ", 0, 59, |
mbedfujimura | 0:9aa1fc6fba40 | 457 | &rtc_time.seconds); |
mbedfujimura | 0:9aa1fc6fba40 | 458 | |
mbedfujimura | 0:9aa1fc6fba40 | 459 | |
mbedfujimura | 0:9aa1fc6fba40 | 460 | |
mbedfujimura | 0:9aa1fc6fba40 | 461 | //Set the time, uses inverted logic for return value |
mbedfujimura | 0:9aa1fc6fba40 | 462 | if(rtc.set_time(rtc_time)) |
mbedfujimura | 0:9aa1fc6fba40 | 463 | { |
mbedfujimura | 0:9aa1fc6fba40 | 464 | printf("\n\rrtc.set_time failed!!\n\r"); |
mbedfujimura | 0:9aa1fc6fba40 | 465 | exit(0); |
mbedfujimura | 0:9aa1fc6fba40 | 466 | } |
mbedfujimura | 0:9aa1fc6fba40 | 467 | |
mbedfujimura | 0:9aa1fc6fba40 | 468 | |
mbedfujimura | 0:9aa1fc6fba40 | 469 | |
mbedfujimura | 0:9aa1fc6fba40 | 470 | //Set the calendar, uses inverted logic for return value |
mbedfujimura | 0:9aa1fc6fba40 | 471 | if(rtc.set_calendar(rtc_calendar)) |
mbedfujimura | 0:9aa1fc6fba40 | 472 | { |
mbedfujimura | 0:9aa1fc6fba40 | 473 | rs232.printf("\n\rrtc.set_calendar failed!!\n\r"); |
mbedfujimura | 0:9aa1fc6fba40 | 474 | exit(0); |
mbedfujimura | 0:9aa1fc6fba40 | 475 | } |
mbedfujimura | 0:9aa1fc6fba40 | 476 | */ |
mbedfujimura | 0:9aa1fc6fba40 | 477 | char buffer[32]; |
mbedfujimura | 0:9aa1fc6fba40 | 478 | |
mbedfujimura | 0:9aa1fc6fba40 | 479 | |
mbedfujimura | 0:9aa1fc6fba40 | 480 | while(1){ |
mbedfujimura | 0:9aa1fc6fba40 | 481 | |
mbedfujimura | 0:9aa1fc6fba40 | 482 | rs232.printf("%c[2J", ESC); //clear screen |
mbedfujimura | 0:9aa1fc6fba40 | 483 | rs232.printf("%c[H", ESC); //move cursor to Home |
mbedfujimura | 0:9aa1fc6fba40 | 484 | |
mbedfujimura | 0:9aa1fc6fba40 | 485 | //new epoch time fx |
mbedfujimura | 0:9aa1fc6fba40 | 486 | epoch_time = rtc.get_epoch(); |
mbedfujimura | 0:9aa1fc6fba40 | 487 | |
mbedfujimura | 0:9aa1fc6fba40 | 488 | |
mbedfujimura | 0:9aa1fc6fba40 | 489 | //lcd.printf("\n\r%s", ctime(&epoch_time)); |
mbedfujimura | 0:9aa1fc6fba40 | 490 | rs232.printf("\n\r%s", ctime(&epoch_time)); |
mbedfujimura | 0:9aa1fc6fba40 | 491 | |
mbedfujimura | 0:9aa1fc6fba40 | 492 | //strftime(buffer, 32, "%I:%M %p\n\r", localtime(&epoch_time)); |
mbedfujimura | 0:9aa1fc6fba40 | 493 | |
mbedfujimura | 0:9aa1fc6fba40 | 494 | strftime(buffer, 32, "%m/%d %I:%M:%S", localtime(&epoch_time)); |
mbedfujimura | 0:9aa1fc6fba40 | 495 | lcd.locate(0,1); |
mbedfujimura | 0:9aa1fc6fba40 | 496 | lcd.printf("%s", buffer); |
mbedfujimura | 0:9aa1fc6fba40 | 497 | //rs232.printf("%s", buffer); |
mbedfujimura | 0:9aa1fc6fba40 | 498 | |
mbedfujimura | 0:9aa1fc6fba40 | 499 | wait(1); |
mbedfujimura | 0:9aa1fc6fba40 | 500 | } //loop |
mbedfujimura | 0:9aa1fc6fba40 | 501 | |
mbedfujimura | 0:9aa1fc6fba40 | 502 | |
mbedfujimura | 0:9aa1fc6fba40 | 503 | |
mbedfujimura | 0:9aa1fc6fba40 | 504 | } |
mbedfujimura | 0:9aa1fc6fba40 | 505 | |
mbedfujimura | 0:9aa1fc6fba40 | 506 | |
mbedfujimura | 0:9aa1fc6fba40 | 507 | |
mbedfujimura | 0:9aa1fc6fba40 | 508 | /********************************************************************** |
mbedfujimura | 0:9aa1fc6fba40 | 509 | * Function: get_user_input() |
mbedfujimura | 0:9aa1fc6fba40 | 510 | * Parameters: message - user prompt |
mbedfujimura | 0:9aa1fc6fba40 | 511 | * min - minimum value of input |
mbedfujimura | 0:9aa1fc6fba40 | 512 | * max - maximum value of input |
mbedfujimura | 0:9aa1fc6fba40 | 513 | * member - pointer to struct member |
mbedfujimura | 0:9aa1fc6fba40 | 514 | * Returns: none |
mbedfujimura | 0:9aa1fc6fba40 | 515 | * |
mbedfujimura | 0:9aa1fc6fba40 | 516 | * Description: get time/date input from user |
mbedfujimura | 0:9aa1fc6fba40 | 517 | * |
mbedfujimura | 0:9aa1fc6fba40 | 518 | **********************************************************************/ |
mbedfujimura | 0:9aa1fc6fba40 | 519 | void get_user_input(char* message, uint8_t min, uint8_t max, uint32_t* member) |
mbedfujimura | 0:9aa1fc6fba40 | 520 | { |
mbedfujimura | 0:9aa1fc6fba40 | 521 | uint32_t temp; |
mbedfujimura | 0:9aa1fc6fba40 | 522 | |
mbedfujimura | 0:9aa1fc6fba40 | 523 | do |
mbedfujimura | 0:9aa1fc6fba40 | 524 | { |
mbedfujimura | 0:9aa1fc6fba40 | 525 | rs232.printf("\n\r%s", message); |
mbedfujimura | 0:9aa1fc6fba40 | 526 | |
mbedfujimura | 0:9aa1fc6fba40 | 527 | //for some reason mbed doesn't like a pointer to a member in scanf |
mbedfujimura | 0:9aa1fc6fba40 | 528 | //term.scanf("%d", member); works with gcc on RPi |
mbedfujimura | 0:9aa1fc6fba40 | 529 | rs232.scanf("%d", &temp); |
mbedfujimura | 0:9aa1fc6fba40 | 530 | |
mbedfujimura | 0:9aa1fc6fba40 | 531 | *member = temp; |
mbedfujimura | 0:9aa1fc6fba40 | 532 | |
mbedfujimura | 0:9aa1fc6fba40 | 533 | if((*(member)< min) || (*(member) > max)) |
mbedfujimura | 0:9aa1fc6fba40 | 534 | { |
mbedfujimura | 0:9aa1fc6fba40 | 535 | rs232.printf("\n\rERROR-RTI"); |
mbedfujimura | 0:9aa1fc6fba40 | 536 | } |
mbedfujimura | 0:9aa1fc6fba40 | 537 | } |
mbedfujimura | 0:9aa1fc6fba40 | 538 | while((*(member) < min) || (*(member) > max)); |
mbedfujimura | 0:9aa1fc6fba40 | 539 | } |
mbedfujimura | 0:9aa1fc6fba40 | 540 | |
mbedfujimura | 0:9aa1fc6fba40 | 541 | |
mbedfujimura | 0:9aa1fc6fba40 | 542 | void get_user_input(char* message, uint8_t min, uint8_t max, bool* member) |
mbedfujimura | 0:9aa1fc6fba40 | 543 | { |
mbedfujimura | 0:9aa1fc6fba40 | 544 | uint32_t temp; |
mbedfujimura | 0:9aa1fc6fba40 | 545 | |
mbedfujimura | 0:9aa1fc6fba40 | 546 | do |
mbedfujimura | 0:9aa1fc6fba40 | 547 | { |
mbedfujimura | 0:9aa1fc6fba40 | 548 | rs232.printf("\n\r%s", message); |
mbedfujimura | 0:9aa1fc6fba40 | 549 | |
mbedfujimura | 0:9aa1fc6fba40 | 550 | //for some reason mbed doesn't like a pointer to a member in scanf |
mbedfujimura | 0:9aa1fc6fba40 | 551 | //term.scanf("%d", member); works with gcc on RPi |
mbedfujimura | 0:9aa1fc6fba40 | 552 | rs232.scanf("%d", &temp); |
mbedfujimura | 0:9aa1fc6fba40 | 553 | |
mbedfujimura | 0:9aa1fc6fba40 | 554 | *member = temp; |
mbedfujimura | 0:9aa1fc6fba40 | 555 | |
mbedfujimura | 0:9aa1fc6fba40 | 556 | if((*(member)< min) || (*(member) > max)) |
mbedfujimura | 0:9aa1fc6fba40 | 557 | { |
mbedfujimura | 0:9aa1fc6fba40 | 558 | rs232.printf("\n\rERROR-RTI"); |
mbedfujimura | 0:9aa1fc6fba40 | 559 | } |
mbedfujimura | 0:9aa1fc6fba40 | 560 | } |
mbedfujimura | 0:9aa1fc6fba40 | 561 | while((*(member) < min) || (*(member) > max)); |
mbedfujimura | 0:9aa1fc6fba40 | 562 | } |
mbedfujimura | 0:9aa1fc6fba40 | 563 | |
mbedfujimura | 0:9aa1fc6fba40 | 564 | |
mbedfujimura | 0:9aa1fc6fba40 | 565 |