Skip to content

Instantly share code, notes, and snippets.

@goog
Created June 21, 2019 00:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save goog/d83786e0eb2c97ad3126ded1987b5078 to your computer and use it in GitHub Desktop.
Save goog/d83786e0eb2c97ad3126ded1987b5078 to your computer and use it in GitHub Desktop.
main loop
while(1)
{
printf("loop begin\n");
printf("SCB_SCR %08x\n", SCB_SCR);
#if 1
if(f_key_pressed)
{
printf("key pressed \n");
f_key_pressed = 0;
}
if(f_key_pressed2 > 0)
{
printf("***key pressed %u\n", f_key_pressed2);
f_key_pressed2 = 0;
}
#endif
memset((void *)buffer, 0, buffer_len);
if(usart_rev_len = usart2_read(buffer, buffer_len))
{
printf("usart2 buf %d\n", usart_rev_len);
printf("usart2 buf %s\n", buffer);
#if 0
int i;
for(i = 0; i < usart_rev_len; i++)
printf("%02X ", buffer[i]);
printf("\n");
#endif
int index_start = 0, index_end = 0;
//char *gps_test = "$GPRMC,010101.130, A, 3606.6834, N, 12021.7778, E, 0.0, 238.3, 010807,,,A*6C\n";
//ret = gps_get_rmc_data(buffer, usart_rev_len, &index_start, &index_end);
ret = gps_get_rmc_data(buffer, usart_rev_len, &index_start, &index_end);
if(ret == 0 && index_start >= 0 && index_end >= index_start)
{
char temp_buf[200] = {0};
printf("gps interval index %d %d\n", index_start, index_end);
memset(gps_buffer, 0, sizeof(gps_buffer));
strncpy(temp_buf, buffer + index_start, index_end - index_start + 1);
printf("the get gps data buffer:%s_\n", temp_buf);
gps_has_flag = read_gps_data(temp_buf, strlen(temp_buf), gps_buffer, sizeof(gps_buffer));
printf("final gps has data flag:%d\n", gps_has_flag);
printf("final gps data:%s\n", gps_buffer);
}
}
STM32_IO_DTR_LOW();
printf("dtr set 0\n");
#if 0
ret = Get_OneData();
printf("get one data returned value %d\n", ret);
// construct data
upload_freezer_data(0x03, NULL, 0, mnc, cpsi_lac, cpsi_cid);
//mqtt_publish();
mqtt_send_data(g_GPRSSendBuffer, Send_len);
#endif
printf("flash id %04x\n", W25QXX_ReadID());
//#if RTC_DEBUG
#if 1
stm32f4_rtc_gettime(0, &tod);
//printf("time %u:%u:%u\n", tod.hour, tod.minute, tod.second);
#endif
rv = I2C_SoftWare_Master_Read(MPU6050_DEFAULT_ADDRESS, 0x3b, aac, 6);
printf("i2c read return value %d\n", rv);
int16_t aacx, aacy, aacz;
aacx = (uint16_t)aac[0] << 8 | aac[1];
aacy = (uint16_t)aac[2] << 8 | aac[3];
aacz = (uint16_t)aac[4] << 8 | aac[5];
printf("aac x %f \n", aacx / 16384.0);
printf("aac y %f \n", aacy / 16384.0);
printf("aac z %f \n", aacz / 16384.0);
if(gprs_err_cnt > 8)
{
nw_restart();
net_process();
}
//rtems_stack_checker_report_usage();
sleep(10);
}
(void)rtems_task_delete( RTEMS_SELF );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment