หัวข้อ: ช่วยด้วยครับใครทราบคำสั่ง แปลงสตริงเป็นตัวเลข ในโปรแกรมPCW Compiler IDE บ้างครับ เริ่มหัวข้อโดย: JO778 ที่ ตุลาคม 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]); |