Decimal to Degrees mathematics help


Closed Thread
Results 1 to 18 of 18

Hybrid View

  1. #1
    Join Date
    Jan 2006
    Location
    Istanbul
    Posts
    1,185


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by RFsolution
    Hi

    This is what I have but dont see any light in "my" tunnel

    OSCCON = $60
    DEFINE OSC 4
    DEFINE adc_bits 10
    DEFINE adc_clock 3
    DEFINE adc_sampleus 50

    adcresult VAR WORD
    dummy var word
    adcon1=%100000010
    maxvalue var word
    minvalue var word
    scale var word
    result_64 var word

    init:
    maxvalue = 64000 'this is 359,8 degrees
    minvalue = 2200 ' this is equal to 0 degrees

    .....

    You have 10bits of res. Thus you need the result as right justified. But you have adcon1=%100000010 one extra 0 is typed here. So the result becomes as left justified. Thus you get your results as 64000 and 2200.

    Change it to adcon1=%10000010. So you now have correct right justified setting.

    Then check the readings again.



    -------------
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

  2. #2
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,612


    Did you find this post helpful? Yes | No

    Default

    Hi,
    I think that your maxvalue and minvalue should be the raw value from the adc ie. between 0 and 1023 and not the raw value times 64.

    Otherwise this will not work:
    Code:
    dummy = (AdcResult - MinValue) * 64
    You get a value between 0 and 1023 from the ADC. Then you subtract 2200 from that which will make it negative and you don't want that.

    Try setting the max and min value to the raw reading from the ADC.

    /Henrik Olsson

  3. #3


    Did you find this post helpful? Yes | No

    Default

    Hi sayzer and henrik thanks for your help

    Well,

    ADCON was wrong so I was getting more than a 10bits ADC result
    so ofcouse my minvalue and maxvalue that i noticed was wrong
    so all mathemacics also resulting in a non res_64 variable

    I'm now getting a value of res_64 but and after dividing it by 64 I have
    a nice 360 deg readout,

    Can anyone help with the bitshifting and additional dividing ? to have a
    .1 deg variable and readout ?

    Thanks

  4. #4
    Join Date
    Jul 2005
    Posts
    78


    Did you find this post helpful? Yes | No

    Default

    With a 10 bit A2D you have a max reading of 1023 counts, which represents 360 degrees. Therefor, each count is 1023/360=2.84... degrees.

    You don't have .1 degree resolution here, you have 3 degree resolution. That .1 degree is not a true number.

  5. #5
    Join Date
    Jan 2006
    Location
    Istanbul
    Posts
    1,185


    Did you find this post helpful? Yes | No

    Default

    Hi ErnieM,

    I do not think your formula is ok. Your result is not in "degree" by the way. 2.84 is the step for per degree.

    Lets leave 0.1 degree sensitivity issue to our teacher, Alain!

    I love to learn.


    ----------------------
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

  6. #6
    Join Date
    Jul 2005
    Posts
    78


    Did you find this post helpful? Yes | No

    Default

    Oops, I inverted it. I should have checked the units.

    Resolution = 360 [degrees] / 1023 [count] = .3519... [degrees/count]



    However, you still don't have .1 degree resolution.

Similar Threads

  1. variable + decimal
    By savnik in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 18th August 2009, 14:21
  2. Offset to variable howto ?
    By RFsolution in forum mel PIC BASIC Pro
    Replies: 18
    Last Post: - 3rd October 2008, 09:36
  3. Conversion to degrees help
    By RFsolution in forum mel PIC BASIC Pro
    Replies: 18
    Last Post: - 5th September 2008, 18:03
  4. Help for decimal conversion
    By eva in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 15th March 2007, 18:20
  5. Convert a word variable to decimal
    By Tomexx in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 4th December 2004, 20:02

Members who have read this thread : 0

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