Anyway, since you do not seem to know why that does not work.

Math on two integer values can not give out a float value. This is not a
math problem, but a compiler behavior issue. Intentional or no, one value
in the equation brackets *has* to be forced to a float value as such.

1) ((4024 / 4096.0) * 1.8)
*OR*
2) const float max_value = 4096; ((4024 / max_value) * 1.8)

It's also why I suggested using a const above.

On Mon, Nov 2, 2015 at 8:16 AM, William Hermans <[email protected]> wrote:

> really now. Prey tell, enlighten us then with your logic.
>
> On Mon, Nov 2, 2015 at 5:10 AM, Chad Baker <[email protected]> wrote:
>
>> No, I don't, but having taught programming for over 40 years, I know that
>> students would take your equation and plug it in and then be surprised that
>> they get 0 for an answer.
>>
>> On 11/1/2015 6:13 PM, William Hermans wrote:
>>
>> *Or 4024 * 1.8 / 4096?*
>>>
>>
>> Ok, so let us put this another way. Do you think that is clear when
>> written in code ? What if 1.8 were actually assigned to a  constant
>> pointer ?
>>
>>
>>
>> On Sat, Oct 31, 2015 at 5:01 AM, Chad Baker <[email protected]> wrote:
>>
>>> Or 4024 * 1.8 / 4096?
>>>
>>>
>>> On 10/30/2015 12:18 PM, William Hermans wrote:
>>>
>>> By the way, the ADC gives out a value of 0-4095. So scaling voltage is
>>> really simple. Say you get a value of 4024 for a reading. In order to get a
>>> reading from 0-1.8v from this  . . .
>>>
>>> ((4024 / 4096) * 1.8) or 1.768359375v
>>>
>>> The max voltage on the pins still can not exceed 1.8v, this is why one
>>> needs an opamp, or similar device to keep the input scaled down. But, in
>>> this manner you could even track large voltages. Hundreds or even thousands
>>> of volts, at the cost of resolution. Which unfortunately can not be
>>> avoided. So going by the above example . . .
>>>
>>> ((4024 / 4096) * 300) or 294.7265625v
>>>
>>> Does this make sense ?
>>>
>>>
>>> On Fri, Oct 30, 2015 at 9:59 AM, William Hermans < <[email protected]>
>>> [email protected]> wrote:
>>>
>>>> *BBB and Linux are new to me.  One of the things I would like to do is
>>>>> compute a ratio between two voltages, each of which might exceed 1.8 VDC.
>>>>> One solution might be to use DACs to sent feedback voltages to operational
>>>>> amplifiers that are supplied by 1.8 VDC.  The goal is to determine the
>>>>> ratio as quickly as possible and without waiting for Linux to get around 
>>>>> to
>>>>> it (waiting for the ADC to happen).*
>>>>>
>>>>
>>>>
>>>> What sample rate do you need ? If something around only a few thousand
>>>> samples a second. This can be done from userspace without using the PRU's.
>>>> You can even use mmap() with /dev/mem/ and directly manipulate the ADC's
>>>> registers, which can sample the ADC faster than 200ksps. However, the
>>>> sample rate would not be as deterministic as using the PRU's.
>>>>
>>>> You can use a PRU to read the ADC's for sure. If you search the web for
>>>> Beaglebone PRU + ADC
>>>> , you will find many ways. People have been doing this for a long time(
>>>> since the beaglebone white ), and if you search this google group, you'll
>>>> even find full code for something someone called "ADCcollector". It's C,
>>>> and PASM assembly, but is a very short / easy read / understanding.
>>>>
>>>> As for how to physically connect to the ADC, I'd listen to evilwulfile.
>>>> He's been an EE for longer than many people on this group have been alive,
>>>> and he knows his stuff ( I know him personally ). Don't risk burning up
>>>> your board, as I've seen several people on these groups do . . .
>>>>
>>>> On Fri, Oct 30, 2015 at 9:43 AM, TJF < <[email protected]>
>>>> [email protected]> wrote:
>>>>
>>>>> Hi John!
>>>>>
>>>>> As Przemek mentioned, a simple voltage divider can scale the input
>>>>> voltage. Additionaly I use a LED (orange color) between the ADC input and
>>>>> ground in order to block overvoltage. (The LED starts to light up at 1V5
>>>>> and consumes full power at 1V8. 1 / 6 of the ADC resolution get lost (is
>>>>> less accurate), but the burning LED as indicatior is a nice side effect.)
>>>>>
>>>>> Regarding software you should have a look at libpruio
>>>>> <http://hackaday.com/2015/02/16/library-upgrade-to-pru-gives-fast-io-on-beaglebone/#comments>
>>>>> .
>>>>>
>>>>> BR
>>>>> --
>>>>> For more options, visit <http://beagleboard.org/discuss>
>>>>> http://beagleboard.org/discuss
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "BeagleBoard" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to <[email protected]>
>>>>> [email protected].
>>>>> For more options, visit <https://groups.google.com/d/optout>
>>>>> https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>> --
>>> For more options, visit http://beagleboard.org/discuss
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "BeagleBoard" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to <[email protected]>
>>> [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>>
>>> --
>>> Chad Baker Memphis, TN
>>> --
>>> For more options, visit http://beagleboard.org/discuss
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "BeagleBoard" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> For more options, visit http://beagleboard.org/discuss
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> Chad Baker Memphis, TN
>>
>> --
>> For more options, visit http://beagleboard.org/discuss
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to