Changing GPS co-ordinates into Degrees-Minutes-Seconds


Closed Thread
Results 1 to 19 of 19

Hybrid View

  1. #1


    Did you find this post helpful? Yes | No

    Question

    Code:
    knots var word 'xx.x knots is going to have to become xxx knots for this math
    kmph var word
    temp var word
    
    temp = knots * 1852            'first part of div32 function
    kmph = div32 1000              'this result should be printed out with one decimal
                                   'in other words result xxx should be printed as xx.x km/h
    How can I get xx.x into xxx as there is an "." in the middle and also the datasheet says about only one digit before decimal -Which I wonder WHY? as speed will become two digits once it goes above 9 knots. How do I use the SKIP in a problem like this where decimal will change place?

  2. #2
    Join Date
    Feb 2006
    Location
    Gilroy, CA
    Posts
    1,530


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by FromTheCockpit View Post
    How can I get xx.x into xxx as there is an "." in the middle and also the datasheet says about only one digit before decimal -Which I wonder WHY? as speed will become two digits once it goes above 9 knots. How do I use the SKIP in a problem like this where decimal will change place?
    I get what you are saying now. I think my gps example had a static xxx.x output, but most of the new (non handheld) ones (like yours) do not.
    This should do the trick, hopefully not too much trouble shooting involved.

    It reads in 5 characters to the array named raw_speed[x]. Then it counts decimal places to the "." character. Then adds the digits together after multiplying them by the right power of 10.

    Code:
    raw_speed var byte[5] 'create an array to put each possible character for speed
    i var byte
    decimal var byte
    speed var word
    
    DEBUGIN 2000,ab,[WAIT("$GPRMC"),skip 14,DEC2 ladeg,DEC2 lamin,skip 1,DEC3 lasec1,skip 4,DEC3 lodeg,DEC2 lomin,skip 1,DEC3 losec1,skip 4,raw_speed[0],raw_speed[1],raw_speed[2],raw_speed[3],raw_speed[4]]
    
    for i = 1 to 3
        'find which character is the decimal point
        if raw_speed[i]="." then decimal = i
    next i
    
    'combine single digits to form whole speed number. Varies from 0.0 to 999.0
    select case decimal 
             'if our gps gives us 1.4, then this will convert it to 14
             'the -48 is a way to convert an ascii number to a number
        case 1 'decimal is in x.x position
            speed=(10*(raw_speed[0]-48))+(raw_speed[2]-48)
        case 2 'decimal is in xx.x position
            speed=(100*(raw_speed[0]-48))+(10*(raw_speed[1]-48))+(raw_speed[3]-48)
        case 3 'decimal is in xxx.x position
            speed=(1000*(raw_speed[0]-48))+(100*(raw_speed[1]-48))+(10*(raw_speed[2]-48))+(raw_speed[4]-48)
    end select
    Last edited by ScaleRobotics; - 3rd November 2009 at 07:14.
    http://www.scalerobotics.com

  3. #3


    Did you find this post helpful? Yes | No

    Default Thanks a lot

    Scalerobotics, thanks a lot. I am now able to get what I want and how I want it from my GPS module. Love this Forum.
    Can I request you answer my one question on the following forum as well please:
    http://www.picbasic.co.uk/forum/showthread.php?t=6927

    Thanks again.

Similar Threads

  1. GPS $GPRMC to PIC16F684. Need help with SERIN2
    By xnihilo in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 27th November 2009, 09:47
  2. Virtual LED Clock For Windows By Trent Jackson
    By T.Jackson in forum Code Examples
    Replies: 8
    Last Post: - 10th November 2009, 08:20
  3. new and need help
    By smeghead in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 3rd November 2008, 20:19
  4. GPS clock timing !
    By bethr in forum mel PIC BASIC Pro
    Replies: 11
    Last Post: - 3rd July 2008, 20:11
  5. DS1994 Memory/Time iButton
    By NavMicroSystems in forum mel PIC BASIC Pro
    Replies: 47
    Last Post: - 22nd October 2006, 11:55

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts