unsigned char handleCmd_timer(void ** args) { USART_printf("Timer raw val: "); USART_printf(itoa(getTimerRaw())); USART_printf("\r\n"); return 0; }
void ledStringSetProgram(void ** args ) { unsigned int numArg = atoi(((unsigned char **) args)[1]); unsigned int numArg2 = atoi(((unsigned char **) args)[2]); /*get sub command*/ if(strcmp((((unsigned char **) args)[0]), "prog" )==0) { USART_printf("Setting ledString program...\r\n"); currentProgram = numArg; } else if(strcmp((((unsigned char **) args)[0]), "speed" )==0) { USART_printf("Update speed ledString...\r\n"); timer_update(0, 0,numArg, ledStringTimer); } else if(strcmp((((unsigned char **) args)[0]), "effect" )==0) { setLedEffect(numArg,(unsigned char)numArg2); } else { USART_printf("prog, speed, effect, are valid."); } }
void shellProcess() { if(console_process(CONSOLE_NON_BLOCKING,input_str, CONSOLE_MAXLEN)) { USART_printf("\r\n"); shell_process(input_str); USART_printf("->"); } }
unsigned char handleCmd_help(void ** args) { unsigned char i; for(i=0; i< (sizeof(commandList)/sizeof(t_command)); i++) { USART_printf(&(commandList[i]).cmd); USART_printf(": "); USART_printf(&(commandList[i]).descr); USART_printf("\r\n"); } return 0; }
void Magnetic::HMC5883_Read(void) { uint8_t t_cmd; t_cmd = 0x14; I2C_Write_NBytes(HMC5883_ADDR, 0x00, 1, &t_cmd); t_cmd = 0x00; I2C_Write_NBytes(HMC5883_ADDR, 0x02, 1, &t_cmd); for (int i = 0; i < 6; i++) { I2C_Read_NBytes(HMC5883_ADDR, 0x03 + i, 6, &Mag_buf[i]); } Mag_X = (Mag_buf[1] << 8) | Mag_buf[0]; Mag_Z = (Mag_buf[3] << 8) | Mag_buf[2]; Mag_Y = (Mag_buf[5] << 8) | Mag_buf[4]; USART_printf("m_x:%10d m_y:%10d m_z:%10d\r\n", Mag_X, Mag_X, Mag_X); /* if(HMC5883.x>0X7FFF)HMC5883.x -= 0XFFFF; if(HMC5883.y>0X7FFF)HMC5883.y -= 0XFFFF; angle = atan2((double)HMC5883.y,(double)HMC5883.x) * (180 / 3.14159265) + 180; // angle in degrees */ }
/** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t* file, uint32_t line) { /* USER CODE BEGIN 6 */ /* User can add his own implementation to report the file name and line number,*/ USART_printf( &BSP_USART_PRINT, "Wrong parameters value: file %s on line %d\r\n", file, line) ; /* USER CODE END 6 */ }
unsigned char handleCmd_adc(void ** args) { int i, sample, min = 1024, max = 0; unsigned int average =0; /*get first argument as string*/ unsigned char * arg1 = (unsigned char *)args[0]; if(!strcmp(arg1, "test")) { USART_printf("ADC sample: "); for(i=0;i< 100; i++) { sample = adcSampleBlocking(); USART_printf(itoa(sample)); USART_printf("\r\n"); if(min > sample) min = sample; if(max < sample) max = sample; average += sample; } USART_printf("min:"); USART_printf(itoa(min)); USART_printf("max:"); USART_printf(itoa(max)); USART_printf("avg:"); USART_printf(itoa((unsigned int)(average/100))); } else if(!strcmp(arg1, "cont")) { /*install timer which calls adc continuously.*/ /*install timer which handles chunk of samples*/ } else USART_printf("arg: 't'||'c'\r\n"); return 0; }
int main (void) { init_main(); /*wait for first character to be received*/ USART_Receive(0); /*print welcome string*/ USART_printf("Hello there....................\r\n->"); DDRB |= _BV(DDB5); while(1) { /*exec shell*/ shellProcess(); /*exec timer process*/ timing_process(); /*exec led updater*/ ledStringProcess(); /* set pin 5 of PORTB for output*/ // /* set pin 5 high to turn led on */ //PORTB |= _BV(PORTB5); //_delay_ms(BLINK_DELAY_MS*4); /* set pin 5 low to turn led off */ //PORTB &= ~_BV(PORTB5); //_delay_ms(BLINK_DELAY_MS); } return 0; }
int main(void) { char start_char; uint16_t n_chars; /* Clock setup */ InitClock(); /* Program Timer 1 to raise interrupts */ T1_program(); /* Init leds */ EE_leds_init(); EE_demoboard_leds_init(); console_init(); USART_printf("Hello From Erika RTOS, press t to run the benchmark \r\n"); //calcRawSpeed(); do{ readChar(&start_char); }while(start_char != 't'); //USART_printf("T ok \r\n"); stop = 0; uint8_t i; calcRawSpeed(); initState(kwips_rawspeed, initAlarms, initFreq, initKWPP); //for(i=0; i<9999; i++){} ActivateTask(SuperTask); //for(i=0; i<9999; i++){} StartOS(OSDEFAULTAPPMODE); /* Forever loop: background activities (if any) should go here */ for (;;); return 0; }
void setLedEffect(unsigned char effectNr, unsigned char argument) { USART_printf("setting effect:"); USART_printf(itoa(effectNr)); switch(effectNr) { case 1: if(globalEffectArgument > 99) { USART_printf(itoa(argument)); USART_printf("?, prog needs arg < 100..."); } else { globalEffectArgument = argument; doLedEffectFunc = ledEffectPostGlow; } break; case 2: if(globalEffectArgument > 10) { USART_printf(itoa(argument)); USART_printf("?, prog needs arg < 10..."); } else { doLedEffectFunc = ledEffectFade; globalEffectArgument = argument; } break; default: /*directly forward*/ doLedEffectFunc = showPixel; break; } }
int main(void) { char cmd, subcmd, x, y, v, w, r; //variables used for loops, buffering of command bytes, counters etc. uint16_t color; //counters for long stuff that may go over 256 uint8_t pressureThreshhold = 10; TouchScreen_init(); USART_set_baud(6); LCD_init(); //flush any received chars USART_flush(); LCD_drawString("Ready For Command", 0, 10, 1, WHITE, USART_recv); /* Replace with your application code */ while (1) { if(!RX_available()) { TSPoint p = TouchScreen_getPoint(); if(p.z > pressureThreshhold) { USART_printf("X = %d\r\n", p.x); USART_printf("Y = %d\r\n", p.y); USART_printf("Pressure = %d\r\n", p.z); } } else { cmd = USART_recv(); switch(cmd) { case 124: subcmd = USART_recv(); switch(subcmd) { case 1: //clear screen LCD_paint_screen_black(); break; //************************************************************************************************************ case 3: //draw circle x = USART_recv(); y = USART_recv(); r = USART_recv(); // get integer color color = USART_recv(); color = color << 8; color |= USART_recv(); LCD_drawCircle(x, y, r, color); break; case 4: x = USART_recv(); y = USART_recv(); r = USART_recv(); // get integer color color = USART_recv(); //store it and increment RX_read color = color << 8; color |= USART_recv(); LCD_fillCircle(x, y, r, color); break; case 12: //line x = USART_recv(); y = USART_recv(); v = USART_recv(); w = USART_recv(); // get integer color color = USART_recv(); color = color << 8; color |= USART_recv(); LCD_drawLine(x, y, v, w, color); break; //************************************************************************************************************ case 15: x = USART_recv(); y = USART_recv(); v = USART_recv(); w = USART_recv(); // get integer color color = USART_recv(); color = color << 8; color |= USART_recv(); LCD_drawRectangle(x, y, v, w, color); break; //************************************************************************************************************ case 16: //set pixel x = USART_recv(); y = USART_recv(); color = USART_recv(); color = color << 8; color |= USART_recv(); LCD_setPixel(x, y, color); break; case 18: x = USART_recv(); y = USART_recv(); v = USART_recv(); w = USART_recv(); // get integer color color = USART_recv(); color = color << 8; color |= USART_recv(); LCD_fillRectangle(x, y, v, w, color); break; case 20: // draw text x = USART_recv(); y = USART_recv(); // size r = USART_recv(); // get integer color color = USART_recv(); //store it and increment RX_read color = color << 8; color |= USART_recv(); // send string end with 0 LCD_drawString(NULL, x, y, r, color, USART_recv); break; } break; } } } }
int main(void) { u8 i=0,m=0; //char buff[6]; SystemInit();//初始化RCC 设置系统主频为72MHZ USART1_Config(); delay_init(); //延时初始化 Ultran_Init(); I2c_Init_MI(); TIM5_Cap_Init(0xfffe,8); TIM2_Cap_Init(0xfffe,8); TIM3_Cap_Init(0xfffe,8); TIM1_Cap_Init(0xfffe,8); TIM4_Cap_Init(0xfffe,8); TIM8_Cap_Init(0xfffe,8); USART1_Config(); USART2_Config(); USART3_Config(); delay_ms(1000); delay_ms(1000); esp8266_ap_server_init(); for(i=0;i<99;i++)//数组初始化 { data_pc[i]=0x30; } data_pc[0]=0xff; data_pc[1]=0xff; while(1) { // char *buff[10]={"AT", // "AT+CIPSTATUS"}; Ultra_Ranging(); if(state_0x0a==1)//字符串解析函数 { u8 i=0,weizhi=0; data_exist=bf( data_cu,ESP_Responses[5]); if(data_exist!=-1) { data_exist1=bf( data_cu,ESP_Responses[10]); if(data_exist1!=-1) { data_exist2=data_exist1-data_exist-7; if(data_exist2==1) { data_length1=data_cu[data_exist+7]; data_length1=data_length1-0x30; data_length=data_length1; weizhi=9; } if(data_exist2==2) { data_length1=data_cu[data_exist+7]; data_length1=data_length1-0x30; data_length1=data_length1*10; data_length2=data_cu[data_exist+8]; data_length2=data_length2-0x30; data_length=data_length1+data_length2; weizhi=10; } for(i=0;i<data_length;i++) { data_wifi[i]=data_cu[data_exist+weizhi+i]; } // USART_printf(USART1, data_right);//发送通过校验的数据到电脑上方便调试 // USART_printf(USART1, "\r\n"); } } cun=0; for(i=0;i<100;i++)//清空接收数组 { data_cu[i]=0; } state_0x0a=0;//接收状态变量清零 //data_exist=0; } if(state_0x0a1==1)//字符串解析函数 { u8 i=0,weizhi=0; data_exist3=bf( data_cu1,ESP_Responses[5]); if(data_exist3!=-1) { data_exist4=bf( data_cu1,ESP_Responses[10]); if(data_exist4!=-1) { data_exist5=data_exist4-data_exist3-7; if(data_exist5==1) { data_length4=data_cu1[data_exist3+7]; data_length4=data_length4-0x30; data_length3=data_length4; weizhi=9; } if(data_exist5==2) { data_length4=data_cu1[data_exist3+7]; data_length4=data_length4-0x30; data_length4=data_length4*10; data_length5=data_cu1[data_exist3+8]; data_length5=data_length5-0x30; data_length3=data_length4+data_length5; weizhi=10; } for(i=0;i<data_length3;i++) { data_wifi1[i]=data_cu1[data_exist3+weizhi+i]; } //USART_printf(USART1, data_right);//发送通过校验的数据到电脑上方便调试 //USART_printf(USART1, "\r\n"); } } cun1=0; for(i=0;i<100;i++)//清空接收数组 { data_cu1[i]=0; } state_0x0a1=0;//接收状态变量清零 //data_exist=0; } data_test=0; for(data_long=0;data_long<9;data_long++)//将接收到的数据进行加和,准备进行校验 { data_test+=data_wifi[data_long]; } if(data_test==data_wifi[9])//校验通过就将数据转移并且保存 { for(data_long=0;data_long<9;data_long++) { data_right[data_long]=data_wifi[data_long]; } } data_test=0; for(data_long=0;data_long<9;data_long++)//将接收到的数据进行加和,准备进行校验 { data_test+=data_wifi1[data_long]; } if(data_test==data_wifi1[9])//校验通过就将数据转移并且保存 { for(data_long=0;data_long<9;data_long++) { data_right1[data_long]=data_wifi1[data_long]; } } for(i=0;i<6;i++)//将转速数据放入data_pc数据包 { sprintf(revolving,"%d",juli[i]); for(m=0;m<5;m++) { if(revolving[m]==0) revolving[m]=0xaa; } for(m=revolving_long;m>0;m--) { data_pc[i*revolving_long+m+1]=revolving[m-1]; } for(m=0;m<revolving_long;m++) //将revolving在这里清零 { revolving[m]=0; } } for(i=0;i<8;i++) { data_pc[32+i+8*(data_right[8]-1)]=data_right[i]; } for(i=0;i<8;i++) { data_pc[32+i+8*(data_right1[8]-1)]=data_right1[i]; } crc_code = yb_crc(data_pc,80);//计算CRC校验码 USART_printf(USART1, data_pc);//发送通过校验的数据到电脑上方便调试 USART_printf(USART1, "\r\n"); //printf(data_right); //printf("\r\n"); // printf("电机1=%d ",juli); // printf("电机2=%d\r\n",juli1); // printf("*********\r\n"); //USART_printf(USART1,buff[1] ); //delay_ms(100); //esp8266_ap_server_init(); } //printf("电机1=%d\s\n",juli); //printf("电机2=%s\r\n",juli1); }