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.
