ช่วยด้วยครับใครทราบคำสั่ง แปลงสตริงเป็นตัวเลข ในโปรแกรมPCW Compiler IDE บ้างครับ
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: ช่วยด้วยครับใครทราบคำสั่ง แปลงสตริงเป็นตัวเลข ในโปรแกรมPCW Compiler IDE บ้างครับ  (อ่าน 3679 ครั้ง)
JO778
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 6


อีเมล์
« เมื่อ: ตุลาคม 13, 2008, 12:36:29 AM »

ช่วยด้วยครับ ด่วนมาก คำสั่ง ภาษาC แปลงสตริงเป็นเลข ที่ใช้เขียนในโปรแกรม ในโปรแกรมPCW Compiler IDE หรือ CCS C

คือรับค่า GPS เข้ามา

$GPGGA,154409.000,1625.3962,N,10248.1008,E,1,06,1.7,152.4,M,-27.1,M,,0000*72

รับเข้ามาเป็นสตริง จะแก้ไขโค๊ดใหม่แค่ส่วนนี้ โดยตามเดิมรับค่าเข้ามาแล้วส่งค่าออกไปเป็นค่า ละติจูด และลองจิจูด โดยการเลื่อนจุด

อยากจะให้มีการคำนวณก่อน

ค่าที่ออกมาจาก GPS Module มันจะเป็นแบบนี้
1625.3962,N หรือ 16 degree 25.3962 min
10248.1008,E หรือ 102 degree 48.1008 min
ทีนี้ถ้าเราจะแปลงไปใช้กะ GoogleMap ก็
16225.3962,N ==แปลง==> 16(เป็นองศาไม่ต้องเปลี่ยน) 25.3962 ==แปลง==> 25.3962/60 = 0.42327
ดังนั้น 1625.3962,N ==แปลง==> 16.42327
ก็คือจาก dddmmnn ==> Decimal Degrees

หรือ 1625.3962,N ==> 1625.3962 เอา 16 ตั้ง เอา 253962/10000 = 25.3962 แล้วนำ 25.3962/60 = 0.42327

ก็นำ 16 มาบวกเข้า 16+0.42327 = 16.42327 ก็จะได้ 16.42327,N ที่จะนำไปหาตำแหน่งในกูเกิ้ลได้ครับ

สรุปอยากจะได้ ค่า GPS ค่านี้ครับนี้ครับ 16.42327,N

จาก 1625.3962,N ==> 16.42327,N

$GPGGA,154409.000,1625.3962,N,10248.1008,E,1,06,1.7,152.4,M,-27.1,M,,0000*72

แต่โค๊ดนี้เป็นการเลื่อนจุดเฉยๆ 16.253962, N ก็เลยอยากจะได้คำสั่ง ภาษา C ไมโครคอนโทรลเลอร์ ที่แปลงค่า สตริงเป็นเลข

เพื่อจะได้นำมาทำการคำนวณครับ

นี่คือโค๊ดที่รับค่ามาเป็นสตริง อยากจะแก้ไขโคดนี้ครับ เพื่อจะได้นำมาคำนวณในเชิงตัวเลขได้

printf("Latitude=%c%c.%c%c%c%c%c%c Longitude=%c%c%c.%c%c%c%c%c%c",buffergps[18],buffergps[19],buffergps[20],buffergps[21],buffergps[23],buffergps[24],buffergps[25],buffergps[26]
,buffergps[30],buffergps[31],buffergps[32],buffergps[33],buffergps[34],buffergps[36],buffergps[37],buffergps[38],buffergps[39]);


บันทึกการเข้า

หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป: