⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gps_parsing.c

📁 gps mmc logging using z8f6421 zilog microcontroller
💻 C
字号:
#include <ez8.h>
#include <stdio.h>
#include <string.h>
#include <sio.h>
#include <stdlib.h>
#include "GPS_parsing.h"

char RMC[100];
char GGA[100];

char *GGAstring(void) {
	
	char GGAstr[100];
	
	select_port(_UART0);
	scanf("%s", &GGAstr);
	
	while (GGAstr[4] != 'G')
		scanf("%s", &GGAstr);
	
	select_port(_UART1);
	return (GGAstr);
}

char *RMCstring(void) {
	
	char RMCstr[100];
	
	select_port(_UART0);
	scanf("%s", &RMCstr);
	
	while (RMCstr[3] != 'R')
		scanf("%s", &RMCstr);
	select_port(_UART1);
	return (RMCstr);
}

void RMCtime(char *RMCstr) {
	extern char timeRMC[];
	int i = 0;
	
	while (RMCstr[i] != ',') 
		i++;
	
	i++;
	
	if (RMCstr[i] != ',') { 
		strncpy(timeRMC, &RMCstr[i], 10); 
		timeRMC[10] = '\0';
		strcpy(RMC, &RMCstr[i+11]);
	}
	else {
		select_port(_UART1);
		printf("No time logged.\n");
		timeRMC[0] = '\0';
	}
}

void RMClat(void) {
	int i = 0;
	extern char latRMC[];
	extern char NS;
	while (RMC[i] != ',') 
		i++;
	
	i++;
	
	if (RMC[i] != ',') { 
		strncpy(latRMC, &RMC[i], 11); 
		NS = latRMC[10];
		latRMC[9] = '\0';
		strcpy(RMC, &RMC[i+12]);
	}
	else {
		select_port(_UART1);
		printf("No valid latitude logged.\n");
		latRMC[0] = '\0';
	}
}


void RMClong(void) {
	int i = 0;
	extern char longRMC[];
	extern char EW;
	
	if (RMC[i] != ',') { 
		strncpy(longRMC, &RMC[i], 12); 
		EW = longRMC[11];
		longRMC[10] = '\0';
		strcpy(RMC, &RMC[i+13]);
	}
	else {
		select_port(_UART1);
		printf("No valid longitude logged.\n");
		longRMC[0] = '\0';
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -