/*----------------------------------------------------------------------*/ void test_init_TF() { /* TF卡 */ TCHAR *path = "0:"; LCD_P8x16Str(0,0, (BYTE*)"TF.."); if (!SD_init()) { /* 挂载TF卡文件系统 */ if (FR_OK == f_mount(&fatfs1, path, 1)) { /* 文件读写测试 */ if (!test_file_system()) { g_devices_init_status.TFCard_is_OK = 1; } } } if (g_devices_init_status.TFCard_is_OK) { LCD_P8x16Str(0,0, (BYTE*)"TF..OK"); } else { LCD_P8x16Str(0,0, (BYTE*)"TF..NOK"); suicide(); } }
int main() { unsigned char i=0; HalLcd_HW_Init(); //oled 初始化 LCD_Fill(0xff); //屏全亮 while(1) { for(i=0; i<8; i++) { LCD_P16x16Ch(i*16,0,i); //点阵显示 LCD_P16x16Ch(i*16,2,i+8); LCD_P16x16Ch(i*16,4,i+16); LCD_P16x16Ch(i*16,6,i+24); } HalHW_WaitMS(1000); LCD_CLS(); LCD_P8x16Str(44,0,"saler"); LCD_P8x16Str(20,2,"OLED DISPLAY"); LCD_P8x16Str(8,4,"TEL:18588220515"); LCD_P6x8Str(20,6,"*****@*****.**"); LCD_P6x8Str(20,7,"2013-10-6 18:18"); HalHW_WaitMS(1000); //LCD_CLS(); //Draw_BMP(0,0,128,8,BMP); //图片显示 //DelayMS(1000); } }
//输出汉字和字符混合字符串 void LCD_Print(u8 x, u8 y, u8 ch[]) { u8 ch2[3]; u8 ii=0; while(ch[ii] != '\0') { if(ch[ii] > 127) { ch2[0] = ch[ii]; ch2[1] = ch[ii + 1]; ch2[2] = '\0'; //汉字为两个字节 LCD_P14x16Str(x , y, ch2); //显示汉字 x += 14; ii += 2; } else { ch2[0] = ch[ii]; ch2[1] = '\0'; //字母占一个字节 LCD_P8x16Str(x , y , ch2); //显示字母 x += 8; ii+= 1; } } }
void OLED_Print(unsigned char x, unsigned char y, char ch[]) { char ch2[3]; unsigned char ii=0; while(ch[ii] != '\0') { ch2[0] = ch[ii]; ch2[1] = '\0'; LCD_P8x16Str(x,y,ch2); x += 8; ii+= 1; } }
void HalLcdWriteString (char *str, uint8 option) { uint8 x=0,y=0,strLen; uint8 lcdBuf[HAL_LCD_MAX_CHARS+1]; x=0; y = (option-1)*2; strLen = (uint8)osal_strlen( (char*)str ); /* Check boundries */ if ( strLen > HAL_LCD_MAX_CHARS ) strLen = HAL_LCD_MAX_CHARS; osal_memset(lcdBuf, 0, HAL_LCD_MAX_CHARS+1); osal_memcpy( lcdBuf, str, strLen ); LcdClearLine(y, 2); LCD_P8x16Str(x, y, lcdBuf); }
/*----------------------------------------------------------------------*/ void read_device_no() { LCD_P8x16Str(0, 4, (BYTE*)"DeviceNo="); if (!read_device_no_from_TF()) { if (g_device_NO!=0) { LCD_PrintoutInt(72, 4, g_device_NO); } else { suicide(); } } else { suicide(); } }
void para_set(void) { PORTB_PCR4|=PORT_PCR_PE_MASK|PORT_PCR_PFE_MASK; PORTB_PCR5|=PORT_PCR_PE_MASK|PORT_PCR_PFE_MASK; PORTB_PCR6|=PORT_PCR_PE_MASK|PORT_PCR_PFE_MASK; PORTB_PCR16|=PORT_PCR_PE_MASK|PORT_PCR_PFE_MASK; PORTB_PCR17|=PORT_PCR_PE_MASK|PORT_PCR_PFE_MASK; PORTE_PCR10|=PORT_PCR_PE_MASK|PORT_PCR_PFE_MASK; PORTE_PCR11|=PORT_PCR_PE_MASK|PORT_PCR_PFE_MASK; PORTE_PCR12|=PORT_PCR_PE_MASK|PORT_PCR_PFE_MASK; // if(!boma2_GetBit(3)) { LCD_P8x16Str(8,0,"jz"); LCD_P8x16Str(8,2,"K_m"); LCD_P8x16Str(8,4,"KD"); LCD_P8x16Str(8,6,"done"); while(1) { if(key_sel==0) { LCD_P8x16Str(0,0,"*"); LCD_P8x16Str(0,2," "); LCD_P8x16Str(0,4," "); LCD_P8x16Str(0,6," "); if(key_sel3==1) { jiaozhengkey=para1; if(para1<0) {LCD_P8x16Str(48,0,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,0," ");para=para1;} display_num(56,0,(int)para%1000/100); display_num(64,0,((int)para%100)/10); display_num(72,0,((int)para%10)); LCD_P8x16Str(80,0,"."); display_num(88,0,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,2," -"); else if(key_sel2==1) LCD_P8x16Str(56,2," - "); else if(key_sel2==2) LCD_P8x16Str(56,2," - "); else if(key_sel2==3) LCD_P8x16Str(56,2,"- "); } else para1=jiaozhengkey; } else if(key_sel==1) { LCD_P8x16Str(0,0," "); LCD_P8x16Str(0,2,"*"); LCD_P8x16Str(0,4," "); LCD_P8x16Str(0,6," "); if(key_sel3==1) { K_middle=para1; if(para1<0) {LCD_P8x16Str(48,2,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,2," ");para=para1;} display_num(56,2,(int)para%1000/100); display_num(64,2,((int)para%100)/10); display_num(72,2,((int)para%10)); LCD_P8x16Str(80,2,"."); display_num(88,2,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,4," -"); else if(key_sel2==1) LCD_P8x16Str(56,4," - "); else if(key_sel2==2) LCD_P8x16Str(56,4," - "); else if(key_sel2==3) LCD_P8x16Str(56,4,"- "); } else para1=K_middle;; } else if(key_sel==2) { LCD_P8x16Str(0,0," "); LCD_P8x16Str(0,2," "); LCD_P8x16Str(0,4,"*"); LCD_P8x16Str(0,6," "); if(key_sel3==1) { Key_KD=para1; if(para1<0) {LCD_P8x16Str(48,4,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,4," ");para=para1;} display_num(56,4,(int)para%1000/100); display_num(64,4,((int)para%100)/10); display_num(72,4,((int)para%10)); LCD_P8x16Str(80,4,"."); display_num(88,4,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,6," -"); else if(key_sel2==1) LCD_P8x16Str(56,6," - "); else if(key_sel2==2) LCD_P8x16Str(56,6," - "); else if(key_sel2==3) LCD_P8x16Str(56,6,"- "); } else para1=Key_KD; } else if(key_sel==3) { LCD_P8x16Str(0,0," "); LCD_P8x16Str(0,2," "); LCD_P8x16Str(0,4," "); LCD_P8x16Str(0,6,"*"); if(key_sel3==1) { LCD_P8x16Str(56,6,"done...");key_sel3=0; break;} } } /***************************************************************************************************/ LCD_CLS(); LCD_P8x16Str(8,0,"length"); LCD_P8x16Str(8,2,"pwml"); LCD_P8x16Str(8,4,"R yu"); LCD_P8x16Str(8,6,"done"); while(1) { if(key_sel==0) { LCD_P8x16Str(0,0,"*"); LCD_P8x16Str(0,2," "); LCD_P8x16Str(0,4," "); LCD_P8x16Str(0,6," "); if(key_sel3==1) { ren_para_length=para1; if(para1<0) {LCD_P8x16Str(48,0,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,0," ");para=para1;} display_num(56,0,(int)para%10000/1000); display_num(64,0,(int)para%1000/100); display_num(72,0,((int)para%100)/10); display_num(80,0,((int)para%10)); LCD_P8x16Str(88,0,"."); display_num(92,0,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,2," -"); else if(key_sel2==1) LCD_P8x16Str(56,2," - "); else if(key_sel2==2) LCD_P8x16Str(56,2," - "); else if(key_sel2==3) LCD_P8x16Str(56,2," - "); } else para1=ren_para_length; } else if(key_sel==1) { LCD_P8x16Str(0,0," "); LCD_P8x16Str(0,2,"*"); LCD_P8x16Str(0,4," "); LCD_P8x16Str(0,6," "); if(key_sel3==1) { ren_para_pwm_l=para1; if(para1<0) {LCD_P8x16Str(48,0,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,0," ");para=para1;} display_num(56,2,(int)para%10000/1000); display_num(64,2,(int)para%1000/100); display_num(72,2,((int)para%100)/10); display_num(80,2,((int)para%10)); LCD_P8x16Str(88,2,"."); display_num(92,2,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,4," -"); else if(key_sel2==1) LCD_P8x16Str(56,4," - "); else if(key_sel2==2) LCD_P8x16Str(56,4," - "); else if(key_sel2==3) LCD_P8x16Str(56,4," - "); } else para1=ren_para_pwm_l; } else if(key_sel==2) { LCD_P8x16Str(0,0," "); LCD_P8x16Str(0,2," "); LCD_P8x16Str(0,4,"*"); LCD_P8x16Str(0,6," "); if(key_sel3==1) { ren_length=para1; if(para1<0) {LCD_P8x16Str(48,4,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,4," ");para=para1;} display_num(56,4,(int)para%1000/100); display_num(64,4,((int)para%100)/10); display_num(72,4,((int)para%10)); LCD_P8x16Str(80,4,"."); display_num(88,4,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,6," -"); else if(key_sel2==1) LCD_P8x16Str(56,6," - "); else if(key_sel2==2) LCD_P8x16Str(56,6," - "); else if(key_sel2==3) LCD_P8x16Str(56,6,"- "); } else para1=ren_length; } else if(key_sel==3) { LCD_P8x16Str(0,0," "); LCD_P8x16Str(0,2," "); LCD_P8x16Str(0,4," "); LCD_P8x16Str(0,6,"*"); if(key_sel3==1) { LCD_P8x16Str(56,6,"done...");key_sel3=0; break;} } } /********************************************************************************/ LCD_CLS(); LCD_P8x16Str(8,0,"pwmr"); LCD_P8x16Str(8,2,"zhi_s"); LCD_P8x16Str(8,4,"ren_num"); LCD_P8x16Str(8,6,"done"); while(1) { if(key_sel==0) { LCD_P8x16Str(0,0,"*"); LCD_P8x16Str(0,2," "); LCD_P8x16Str(0,4," "); LCD_P8x16Str(0,6," "); if(key_sel3==1) { ren_para_pwm_r=para1; if(para1<0) {LCD_P8x16Str(48,0,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,0," ");para=para1;} display_num(56,0,(int)para%10000/1000); display_num(64,0,(int)para%1000/100); display_num(72,0,((int)para%100)/10); display_num(80,0,((int)para%10)); LCD_P8x16Str(88,0,"."); display_num(92,0,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,2," -"); else if(key_sel2==1) LCD_P8x16Str(56,2," - "); else if(key_sel2==2) LCD_P8x16Str(56,2," - "); else if(key_sel2==3) LCD_P8x16Str(56,2," - "); } else para1=ren_para_pwm_r; } else if(key_sel==1) { LCD_P8x16Str(0,0," "); LCD_P8x16Str(0,2,"*"); LCD_P8x16Str(0,4," "); LCD_P8x16Str(0,6," "); if(key_sel3==1) { zhidao_speed=para1; if(para1<0) {LCD_P8x16Str(48,0,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,0," ");para=para1;} display_num(56,2,(int)para%10000/1000); display_num(64,2,(int)para%1000/100); display_num(72,2,((int)para%100)/10); display_num(80,2,((int)para%10)); LCD_P8x16Str(88,2,"."); display_num(92,2,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,4," -"); else if(key_sel2==1) LCD_P8x16Str(56,4," - "); else if(key_sel2==2) LCD_P8x16Str(56,4," - "); else if(key_sel2==3) LCD_P8x16Str(56,4," - "); } else para1=zhidao_speed; } else if(key_sel==2) { LCD_P8x16Str(0,0," "); LCD_P8x16Str(0,2," "); LCD_P8x16Str(0,4,"*"); LCD_P8x16Str(0,6," "); if(key_sel3==1) { ren_num=para1; if(para1<0) {LCD_P8x16Str(48,4,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,4," ");para=para1;} display_num(56,4,(int)para%1000/100); display_num(64,4,((int)para%100)/10); display_num(72,4,((int)para%10)); LCD_P8x16Str(80,4,"."); display_num(88,4,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,6," -"); else if(key_sel2==1) LCD_P8x16Str(56,6," - "); else if(key_sel2==2) LCD_P8x16Str(56,6," - "); else if(key_sel2==3) LCD_P8x16Str(56,6,"- "); } else para1=ren_num; } else if(key_sel==3) { LCD_P8x16Str(0,0," "); LCD_P8x16Str(0,2," "); LCD_P8x16Str(0,4," "); LCD_P8x16Str(0,6,"*"); if(key_sel3==1) { LCD_P8x16Str(56,6,"done...");key_sel3=0; break;} } } } }
void para_display(void) { LCD_CLS(); LCD_P8x16Str(8,0,"jz"); LCD_P8x16Str(8,2,"K_m"); LCD_P8x16Str(8,4,"KD"); para1=jiaozhengkey; if(para1<0) {LCD_P8x16Str(48,0,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,0," ");para=para1;} display_num(56,0,(int)para%1000/100); display_num(64,0,((int)para%100)/10); display_num(72,0,((int)para%10)); LCD_P8x16Str(80,0,"."); display_num(88,0,(int)(para*10)%10); para1=K_middle; if(para1<0) {LCD_P8x16Str(48,0,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,0," ");para=para1;} display_num(56,2,(int)para%1000/100); display_num(64,2,((int)para%100)/10); display_num(72,2,((int)para%10)); LCD_P8x16Str(80,2,"."); display_num(88,2,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,4," -"); else if(key_sel2==1) LCD_P8x16Str(56,4," - "); else if(key_sel2==2) LCD_P8x16Str(56,4," - "); else if(key_sel2==3) LCD_P8x16Str(56,4,"- "); para1=Key_KD; if(para1<0) {LCD_P8x16Str(48,0,"-");para=(-1)*para1;} else {LCD_P8x16Str(48,0," ");para=para1;} display_num(56,4,(int)para%1000/100); display_num(64,4,((int)para%100)/10); display_num(72,4,((int)para%10)); LCD_P8x16Str(80,4,"."); display_num(88,4,(int)(para*10)%10); if(key_sel2==0) LCD_P8x16Str(56,6," -"); else if(key_sel2==1) LCD_P8x16Str(56,6," - "); else if(key_sel2==2) LCD_P8x16Str(56,6," - "); else if(key_sel2==3) LCD_P8x16Str(56,6,"- "); }
/*-----------------------------------------------------------------------*/ void init_all_and_POST(void) { int i = 0; /* TF卡 */ TCHAR *path = "0:"; disable_watchdog(); init_modes_and_clock(); initEMIOS_0MotorAndSteer(); initEMIOS_0Image();/* 摄像头输入中断初始化 */ init_pit(); init_led(); init_DIP(); init_serial_port_0(); init_serial_port_1(); init_serial_port_2(); //init_ADC(); //init_serial_port_3(); init_supersonic_receive_0(); init_supersonic_receive_1(); // init_supersonic_receive_2(); // init_supersonic_receive_3(); init_supersonic_trigger_0(); init_supersonic_trigger_1(); // init_supersonic_trigger_2(); // init_supersonic_trigger_3(); // init_optical_encoder(); //init_DSPI_2(); //init_I2C(); init_choose_mode(); /* 初始化SPI总线 */ init_DSPI_1(); /* 开启外部总中断 */ enable_irq(); /* 初始化显示屏 */ initLCD(); //LCD_DISPLAY(); LCD_Fill(0xFF); /* 亮屏 */ delay_ms(50); LCD_Fill(0x00); /* 黑屏 */ delay_ms(50); #if 1 /* 初始化TF卡 */ LCD_P8x16Str(0,0, (BYTE*)"TF.."); if (!SD_init()) { /* 挂载TF卡文件系统 */ if (FR_OK == f_mount(&fatfs1, path, 1)) { /* 文件读写测试 */ if (!test_file_system()) { g_devices_init_status.TFCard_is_OK = 1; } } } if (g_devices_init_status.TFCard_is_OK) { LCD_P8x16Str(0,0, (BYTE*)"TF..OK"); } else { LCD_P8x16Str(0,0, (BYTE*)"TF..NOK"); suicide(); } /* 读取设备号 */ LCD_P8x16Str(0, 4, (BYTE*)"DeviceNo="); if (!read_device_no_from_TF()) { if (WIFI_ADDRESS_WITHOUT_INIT != g_device_NO) { LCD_PrintoutInt(72, 4, g_device_NO); } else { suicide(); } } else { suicide(); } /* 开启RFID读卡器主动模式 */ if (!init_RFID_modul_type()) { g_devices_init_status.RFIDCard_energetic_mode_enable_is_OK = 1; LCD_P8x16Str(0, 6, (BYTE*)"RFID..OK"); } else { g_devices_init_status.RFIDCard_energetic_mode_enable_is_OK = 0; LCD_P8x16Str(0, 6, (BYTE*)"RFID..NOK"); suicide(); } delay_ms(1000); /* 换屏 */ LCD_Fill(0x00); /* 读取舵机参数 */ LCD_P8x16Str(0, 0, (BYTE*)"StH.L="); if (read_steer_helm_data_from_TF()) { suicide(); } update_steer_helm_basement_to_steer_helm(); LCD_PrintoutInt(48, 0, data_steer_helm_basement.left_limit); set_steer_helm_basement(data_steer_helm_basement.left_limit); delay_ms(500); LCD_P8x16Str(0, 2, (BYTE*)"StH.R="); LCD_PrintoutInt(48, 2, data_steer_helm_basement.right_limit); set_steer_helm_basement(data_steer_helm_basement.right_limit); delay_ms(500); LCD_P8x16Str(0, 4, (BYTE*)"StH.C="); LCD_PrintoutInt(48, 4, data_steer_helm_basement.center); set_steer_helm_basement(data_steer_helm_basement.center); /* 读取mode号 */ LCD_P8x16Str(0, 6, (BYTE*)"MODE="); LCD_PrintoutInt(40, 6, mode); //set_pos_target(); delay_ms(1000); /* 换屏 */ LCD_Fill(0x00); /* 速度闭环测试 */ g_f_enable_speed_control = 1; LCD_P8x16Str(0, 4, (BYTE*)"S.T=0"); set_speed_target(0); delay_ms(2000); /* 换屏 */ LCD_Fill(0x00); #endif }
void init_speed_control() { g_f_enable_speed_control = 1; LCD_P8x16Str(0, 4, (BYTE*)"S.T=0"); set_speed_target(0); }
/*----------------------------------------------------------------------*/ void read_DIP_mode() { LCD_P8x16Str(0, 6, (BYTE*)"MODE="); LCD_PrintoutInt(40, 6, mode); }