![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#4 |
Đệ tử 6 túi
|
3. Cách tách data cần thiết từ chuỗi data nhận được từ Vệ tinh
Việc kết nối GPS module(chân TX0) với Microcontroller qua chân RX, ta sử dụng ngắt RDA để thực hiện việc lấy chuỗi data cũng như tách lấy dữ liệu cần lấy.
Ví dụ: Chuỗi data cần lấy: $GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,1 30694,004.2,W*70 Ghi nhận: *Sau dấu "," thứ nhất: Thông tin thời gian *Sau dấu "," thứ 2: thông tin Latitude *Sau dấu "," thứ 4: thông tin Longitude * .... Code:
char GPSbuffer[70]; char GPRMC[6]={"$GPRMC"};//Nếu muốn lấy chuỗi data ta GPRMC char Comma_position[13]; int8 check= 0; /* Find comma in GPS datas -------------*/ Void FindComma() { int8 i, counter= 0; for(i= 0;i<70; i++) { if(GPSbuffer[i]== ',' ) Comma_position[counter++]= i; } } /*Received data from GPS module: ------------*/ #INT_RDA Void Receive_GPSbuffer() { char c; c= getc(); if(check == 69) return; GPSbuffer[check++]= getc(); if(check<7) { if((GPSbuffer[check-1]) != (GPRMC[check-1])) check= 0; } } Void TimeGPS()//Vi dụ mang tính minh họa lấy thời gian từ GPS module. { char i; i= Comma_position[0]; //ngay sau vị trí dấu , đầu tiên là thông tin THOI GIAN printf("TIME(HHMMSS): %c%c:%c%c:%c%c\r\n",GPSbuffer[i+1],GPSbuffer[i+2], GPSbuffer[i+3],GPSbuffer[i+4], GPSbuffer[i+5],GPSbuffer[i+6]); delay_ms(10); } Void LatitudeGPS() { char i; i= Comma_position[2]; ... } Vode LongitudeGPS() { char i; i= Comma_position[4]; ... } Void GetData() { FindComma(); TimeGPS(); LatitudeGPS();//*Sau dấu "," thứ 2: thông tin Latitude LongitudeGPS();//*Sau dấu "," thứ 4: thông tin Longitude //... check= 0;//The next get GPS datas. } void main() { if(check == 69) GetData(); }
__________________
-------------------------------------------------------------------------------------- Phùng Minh Tuân Email: tuan.phmt@gmail.com "Cuộc đời sóng gió nuôi ta lớn Bao lần thất bại dạy ta khôn". thay đổi nội dung bởi: longtu, 22-12-2011 lúc 11:16 AM. |
![]() |
![]() |
|
|