Jun Suto / Mbed OS STM32F446_MG400_DIRECT_V0R17

Dependencies:  

Committer:
js
Date:
Fri Oct 21 10:55:00 2022 +0000
Revision:
3:8e445135859e
Parent:
2:71b3736a1bd7
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bangbh 0:412f9c1172b7 1 #include "mbed.h"
js 2:71b3736a1bd7 2 #include "nextion_lcd.h"
js 2:71b3736a1bd7 3 #include "APP.h"
bangbh 0:412f9c1172b7 4
js 2:71b3736a1bd7 5 #include "FATFileSystem.h"
js 2:71b3736a1bd7 6 // Block devices
js 2:71b3736a1bd7 7 #include "SDBlockDevice.h"
js 2:71b3736a1bd7 8 #include "SAVE_CONT.h"
js 2:71b3736a1bd7 9 #include "PS3_BT_CTL.h"
js 2:71b3736a1bd7 10 #include "ROBO1_CONT.h"
js 2:71b3736a1bd7 11 #include "ROBO2_CONT.h"
js 2:71b3736a1bd7 12 #include "IO_CONT.h"
js 2:71b3736a1bd7 13 #include "CUT_CONT.h"
js 2:71b3736a1bd7 14 #include "ROBO_TWIN_CONT.h"
js 2:71b3736a1bd7 15 #include "DiNi_supplyr.h"
bangbh 0:412f9c1172b7 16
js 2:71b3736a1bd7 17 DigitalIn SD_CD_I(PC_4);
js 2:71b3736a1bd7 18 // File system declaration
js 2:71b3736a1bd7 19 FATFileSystem fileSystem("fs");
js 2:71b3736a1bd7 20
js 2:71b3736a1bd7 21 // Physical block device, can be any device that supports the BlockDevice API
js 2:71b3736a1bd7 22 SDBlockDevice blockDevice(PC_3,PC_2,PB_10,PB_12); // mosi, miso, sck, cs
js 2:71b3736a1bd7 23 static UnbufferedSerial *pc;
js 2:71b3736a1bd7 24
js 2:71b3736a1bd7 25 char pc_print_buf[64];
js 2:71b3736a1bd7 26
bangbh 0:412f9c1172b7 27
js 2:71b3736a1bd7 28 void time_set(){
js 2:71b3736a1bd7 29 RTC_GET();
js 2:71b3736a1bd7 30 // setup time structure for Wed, 28 Oct 2009 11:35:37
js 2:71b3736a1bd7 31 struct tm t;
js 2:71b3736a1bd7 32 t.tm_sec = rtc_sec; // 0-59
js 2:71b3736a1bd7 33 t.tm_min = rtc_min; // 0-59
js 2:71b3736a1bd7 34 t.tm_hour =rtc_hour; // 0-23
js 2:71b3736a1bd7 35 t.tm_mday = rtc_date; // 1-31
js 2:71b3736a1bd7 36 t.tm_mon = rtc_month-1; // 0-11
js 2:71b3736a1bd7 37 t.tm_year = rtc_year-1900; // year since 1900
js 2:71b3736a1bd7 38
js 2:71b3736a1bd7 39 // convert to timestamp and set (1256729737)
js 2:71b3736a1bd7 40 time_t seconds = mktime(&t);
js 2:71b3736a1bd7 41 set_time(seconds);
js 2:71b3736a1bd7 42 }
js 2:71b3736a1bd7 43 void time_disp(){
js 2:71b3736a1bd7 44 //time_t seconds = time(NULL) + (60 * 60 * 9); // JST
js 2:71b3736a1bd7 45 time_t seconds = time(NULL);
js 2:71b3736a1bd7 46 struct tm *t = localtime(&seconds);
js 2:71b3736a1bd7 47
js 2:71b3736a1bd7 48 printf("%04d/%02d/%02d %02d:%02d:%02d",
js 2:71b3736a1bd7 49 t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
js 2:71b3736a1bd7 50
js 2:71b3736a1bd7 51 }
js 2:71b3736a1bd7 52 void pc_printf(char *txt){
js 2:71b3736a1bd7 53 unsigned char len = strlen(txt);//文字列の長さを確認
js 2:71b3736a1bd7 54 pc->write(txt,len);
js 2:71b3736a1bd7 55 }
js 2:71b3736a1bd7 56 ////ms単位でのwait指定////
js 2:71b3736a1bd7 57 void wait_ms(double wcnt){
js 2:71b3736a1bd7 58 wait_us(wcnt*1000);
js 2:71b3736a1bd7 59
js 2:71b3736a1bd7 60 }
js 2:71b3736a1bd7 61 void wait(double wcnt){
js 2:71b3736a1bd7 62 wait_us(wcnt*1000000000);
js 2:71b3736a1bd7 63
js 2:71b3736a1bd7 64 }
bangbh 0:412f9c1172b7 65
js 2:71b3736a1bd7 66 void SD_CARD_INI(){
js 2:71b3736a1bd7 67 SD_CD_I.mode(PullUp);
js 2:71b3736a1bd7 68 if(SD_CD_I.read()==1){
js 2:71b3736a1bd7 69 lcd_print("t0","SDカード未挿入の為、起動できません。");
js 2:71b3736a1bd7 70 ALM_ST= ALM_SD;
js 2:71b3736a1bd7 71 ALM_HOLD_SET();
js 2:71b3736a1bd7 72 }else{
js 2:71b3736a1bd7 73 lcd_print("t0","SDカード挿入確認OK");
js 2:71b3736a1bd7 74 }
js 2:71b3736a1bd7 75 //lcdのRTCから時刻を取得してマイコンのRTCにセット(ファイルの保存時刻用)
js 2:71b3736a1bd7 76 //time_set();
js 2:71b3736a1bd7 77 // time_disp();
js 2:71b3736a1bd7 78 // Try to mount the filesystem
js 2:71b3736a1bd7 79 printf("Mounting the filesystem... ");
js 2:71b3736a1bd7 80 fflush(stdout);
bangbh 0:412f9c1172b7 81
js 2:71b3736a1bd7 82 int err = fileSystem.mount(&blockDevice);
js 2:71b3736a1bd7 83 printf("%s\n", (err ? "Fail :(" : "OK"));
js 2:71b3736a1bd7 84 if (err) {
js 2:71b3736a1bd7 85 // Reformat if we can't mount the filesystem
js 2:71b3736a1bd7 86 // this should only happen on the first boot
js 2:71b3736a1bd7 87 printf("No filesystem found, formatting... ");
js 2:71b3736a1bd7 88 fflush(stdout);
js 2:71b3736a1bd7 89 ALM_ST= ALM_SD;
js 2:71b3736a1bd7 90 lcd_print("t0","SDカード異常の為、起動できません。");
js 2:71b3736a1bd7 91 ALM_HOLD_SET();
js 2:71b3736a1bd7 92
js 2:71b3736a1bd7 93 }
js 2:71b3736a1bd7 94
js 2:71b3736a1bd7 95 }
bangbh 0:412f9c1172b7 96
bangbh 0:412f9c1172b7 97 int main() {
js 2:71b3736a1bd7 98 wait_ms(500);
js 2:71b3736a1bd7 99 nextion_lcd_ini(); //LCD初期化
js 2:71b3736a1bd7 100 lcd_backlight(50);
bangbh 0:412f9c1172b7 101 //Set serial port baudrate speed: 115200
js 2:71b3736a1bd7 102 pc= new UnbufferedSerial(USBTX, USBRX,115200);
js 2:71b3736a1bd7 103
js 2:71b3736a1bd7 104
js 2:71b3736a1bd7 105 //RB1_CONNECT();
js 2:71b3736a1bd7 106 // RB2_CONNECT();
js 2:71b3736a1bd7 107 HOME_STATE=1;//TEST
js 2:71b3736a1bd7 108
js 2:71b3736a1bd7 109   IO_INI();//IO初期化 I2C絶縁IO
js 2:71b3736a1bd7 110 EA_IO_INI();
js 2:71b3736a1bd7 111
js 2:71b3736a1bd7 112
js 2:71b3736a1bd7 113 PS3_CTL_INI();
js 2:71b3736a1bd7 114 /////SDカード初期処理///
js 2:71b3736a1bd7 115 SD_CARD_INI();
js 2:71b3736a1bd7 116 wait_ms(100);
bangbh 0:412f9c1172b7 117
js 2:71b3736a1bd7 118 ////ポジションデータ読み込み///
js 2:71b3736a1bd7 119 RB1_LIST_READ();
js 2:71b3736a1bd7 120 RB2_LIST_READ();
js 2:71b3736a1bd7 121 sprintf(lcd_print_buf,"ポイントデータ読み込み件数 :RB1 : %02d R2 : %02d",RB1_POINT_NO_CNT-1,RB1_POINT_NO_CNT-1);
js 2:71b3736a1bd7 122 lcd_print("t0",lcd_print_buf);
js 2:71b3736a1bd7 123 ///極棒交換回数,ニッケル端子設定値の読み出し//
js 2:71b3736a1bd7 124 // SET_UP_SAVE();
js 2:71b3736a1bd7 125 SETUP_DATA_RD();//設定値の読み出し(リセット時にSDエラーになるのでデバック中は、コメントアウト)
js 2:71b3736a1bd7 126
js 2:71b3736a1bd7 127 //lcdのRTCから時刻を取得してマイコンのRTCにセット(ファイルの保存時刻用)
js 2:71b3736a1bd7 128 time_set();
js 2:71b3736a1bd7 129 time_disp();
js 2:71b3736a1bd7 130
js 2:71b3736a1bd7 131 wait_ms(1500);
js 2:71b3736a1bd7 132 // printf("Start\r\n");
bangbh 0:412f9c1172b7 133
js 2:71b3736a1bd7 134 ///作業画面へ移行////
js 2:71b3736a1bd7 135 lcd_page_set(P_MAIN,100);
js 2:71b3736a1bd7 136 wait_ms(200);
js 2:71b3736a1bd7 137
js 2:71b3736a1bd7 138
js 2:71b3736a1bd7 139 lcd_print("t0","ダイレクト溶接DOBOT板 V0.17(2022/10/13)");
js 2:71b3736a1bd7 140 printf("dobot direct prgoram start\r\n");
js 2:71b3736a1bd7 141 MAIN_PAGE_DISP();
js 2:71b3736a1bd7 142 lcd_audio_vol(0,100);//val=0から100 def80
js 2:71b3736a1bd7 143 lcd_audio_play(AU_BOOT,0,80);
js 2:71b3736a1bd7 144 //lcdのRTCから時刻を取得してマイコンのRTCにセット(ファイルの保存時刻用)
js 2:71b3736a1bd7 145 time_set();
js 2:71b3736a1bd7 146 time_disp();
js 2:71b3736a1bd7 147 wait_ms(1000);
js 2:71b3736a1bd7 148
js 2:71b3736a1bd7 149 /* while(1){
js 2:71b3736a1bd7 150 if(IO_EX_BIT_READ(WTRP_HEND_I)==IOEX_OFF_I){
js 2:71b3736a1bd7 151 printf("HEND OFF\r\n");
js 2:71b3736a1bd7 152 lcd_print("t0","HEND OFF");
js 2:71b3736a1bd7 153 }else{
js 2:71b3736a1bd7 154 printf("HEND ON\r\n");
js 2:71b3736a1bd7 155 lcd_print("t0","HEND ON");
bangbh 0:412f9c1172b7 156 }
js 2:71b3736a1bd7 157 wait_ms(1000);
js 2:71b3736a1bd7 158 }
js 2:71b3736a1bd7 159 */
js 2:71b3736a1bd7 160 while(1){
js 2:71b3736a1bd7 161 MG400_AP();
bangbh 0:412f9c1172b7 162 }
bangbh 0:412f9c1172b7 163 }