Oh, and right. For all intents and purpose concerning application
performance. cout with C++ and printf() in C would roughly be the same.

On Wed, Oct 19, 2016 at 8:48 PM, William Hermans <[email protected]> wrote:

> Additionally, I'm not really sure if the above description I gave will be
> fast enough, If you're very careful in how you structure your code, and
> making sure not to use function calls that switch back and forth between
> userspace / kernel space. I think it could be. However, if it is not fast
> enough still, you can use one of the PRU's to trap interrupts on a pin. But
> here the only missing piece I am not sure how you could generate a time
> stamp in a timely fashion. No pun intended.
>
> Something to be aware of. If you're going to use something like printf().
> That would definitely slow down such an application. *UNLESS* you were to
> pipe the output of that application to a file. LIke: ./foo > somefile.txt
>
> On Wed, Oct 19, 2016 at 8:31 PM, William Hermans <[email protected]>
> wrote:
>
>>
>>
>> On Wed, Oct 19, 2016 at 4:50 PM, Arthur Caio <[email protected]> wrote:
>>
>>> Hello you all!
>>>
>>> I need to calculate hot much time it takes for an input to go from LOW
>>> to HIGH and then to LOW again. Basically, I want to know the period of a
>>> square wave generated by the LM555 timer.
>>>
>>> I am using Qt Creator and programming in C++.
>>>
>>> I am having trouble at programming this code in C++ for the beaglebone.
>>>
>>> Do you guys have any piece of code in C++ that may help me?
>>>
>> I do not personally know of any code for this specific case. However, and
>> with that said. Your best bet aside from writing a Linux module
>> specifically for this is to use and interrupt, and some form of Linux time
>> API call.
>>
>> As for userspace interrupts. This is not really possible. As this would
>> slow down the OS too much because of application context switching.
>> However, there is something very close to just as good. For this from a
>> userspace application. You can setup a blocking read form the sysfs gpio
>> "value" file. Like so:
>>
>>  $ ls /sys/class/gpio/gpio2
>> active_low  device  direction  edge  power  subsystem  uevent
>>
>> *value*
>>
>> This is actually more complicated than it may seem initially however. As
>> I believe poll(), and select() both will return immediately if you do not
>> configure the "edge" file correctly. Instead of repeating what's already
>> been described on the internet, I'll leave you with this link, which
>> describes it this very well I think: https://www.linux.com/learn/be
>> aglebone-black-how-get-interrupts-through-linux-gpio
>>
>> Then once you have that figured out, all you really need is a before, and
>> after timestamp. Which is described very well in the multiple answers to
>> this stackoverflow question; http://stackoverflow.com/quest
>> ions/11765301/how-do-i-get-the-unix-timestamp-in-c-as-an-int
>>
>
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/CALHSORpuHJEQQtp67qUkV0xfvskh%3DcupxBqCvkrDCCojWFMhNA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to