By the way. I'm not familiar with the C++ fstream object. But this person is not doing any error checking . . .
On Thu, Jul 14, 2016 at 1:48 PM, William Hermans <yyrk...@gmail.com> wrote: > Ok turns out I do not have to write an example. After a quick google > search I found a very good simple example on stackoverflow: > http://stackoverflow.com/questions/21198933/how-to-control-beaglebone-gpio-pins > > So. . . this is a very good example that shows how one would, or could > wrap the gpio sysfs files. This: > > fs.open("/sys/kernel/debug/omap_mux/gpmc_ad4"); >> fs << "7"; >> >> May be incorrect for current kernel / file system structure, but I can > tell you what this bit of code is going. It's simply muxing the pin he / > she want to control in code. 0x7 == pin mux for GPIO mode. So you( we ) can > either figure how do do this with modern debian images, or "we" could > simply mu our pins with config-pin( universal IO ) or device tree overlay. > > Personally, since I've been experimenting with Charles' universal-io > overlays and config-pin recently, and in my spare time. I'm favoring that > lately. Also, that script is very easily wrapped in code as well. Anyway, > once the pin it muxed for the correct mode, the rest of that code would( > should ) simply work. > > fs.open("/sys/class/gpio/export"); >> fs << "32"; >> fs.close(); >> > > This is exactly as if you echo "32" into /sys/class/gpio/export. Which > exports the pin. > > fs.open("/sys/class/gpio/gpio32/direction"); >> fs << "out"; >> fs.close(); > > > Exactly like echoing "out" into /sys/class/gpio/gpio32/direction. Which > configures the pin as output. > > fs.open("/sys/class/gpio/gpio32/value"); >> fs << "1"; >> fs.close(); >> >> > Exactly the same as echoing "1" into /sys/class/gpio/gpio32/value. Which > makes the pin output, and high. > > Any further questions ? > > On Thu, Jul 14, 2016 at 11:20 AM, William Hermans <yyrk...@gmail.com> > wrote: > >> OK, I'm still a little busy, but I should have something example wise in >> a couple hours. >> >> On Thu, Jul 14, 2016 at 1:00 AM, William Hermans <yyrk...@gmail.com> >> wrote: >> >>> You only need to toggle gpio ? How fast do you need it to be ? That code >>> is far to complex, and uses threading, as well as callbacks for some odd >>> reason. Threaded code can have performance overhead, and callbacks can >>> cause problems on the stack if you're not careful. >>> >>> You would be better off writing your own wrapper code. You could either >>> wrap the sysfs gpio files directly. Or if you wished you could wrap >>> config-pin from universal io. >>> >>> Anyway, it's getting late here so perhaps tomorrow I'll write up a quick >>> example, that is far less code than D.R. Molloy's . . . uh . ..library ? >>> The thing is, the sysfs directory / file structure is already there and >>> functional. Why would anyone need to write so much code to encapsulate it ? >>> *shrug* >>> >>> On Wed, Jul 13, 2016 at 10:02 PM, Raul Piper <raulpbloo...@gmail.com> >>> wrote: >>> >>>> Attached. >>>> One is the cpp code and other is the bash script. >>>> cpp code uses the GPIO class from the attached GPIO.7z . >>>> >>>> >>>> On Thursday, July 14, 2016 at 9:50:45 AM UTC+5:30, William Hermans >>>> wrote: >>>>> >>>>> Let's put it this way. No code, no help . . . >>>>> >>>>> On Wed, Jul 13, 2016 at 9:19 PM, William Hermans <yyr...@gmail.com> >>>>> wrote: >>>>> >>>>>> >>>>>> #code2 >>>>>> //create an instance of gpio41 >>>>>> //set direction as OUT >>>>>> //set value as 1 >>>>>> usleep(100000); >>>>>> //set value 0 >>>>>> >>>>>> Output : Toggle doesnt happens >>>>>> >>>>>> Whats this ? This is not code. At best it's comments, and usleep(). >>>>>> >>>>>> >>>>>> On Wed, Jul 13, 2016 at 9:02 PM, Raulp <imsaura...@gmail.com> wrote: >>>>>> >>>>>>> OK let em explain a bit more : >>>>>>> #code 1 >>>>>>> sudo echo 41 > export >>>>>>> cd gpio41 >>>>>>> sudo chmod 666 direction >>>>>>> sudo chmod 666 value >>>>>>> sudo echo out > direction >>>>>>> sudo echo 1 > value >>>>>>> sleep 1 >>>>>>> sudo echo 0 > value >>>>>>> >>>>>>> Output : Toggle on the GPIO 41 >>>>>>> >>>>>>> >>>>>>> #code2 >>>>>>> //create an instance of gpio41 >>>>>>> //set direction as OUT >>>>>>> //set value as 1 >>>>>>> usleep(100000); >>>>>>> //set value 0 >>>>>>> >>>>>>> Output : Toggle doesnt happens >>>>>>> >>>>>>> >>>>>>> Now the output I am referring to is the functioning of the hardware >>>>>>> I have used.(ignore toggling , it happens anyway using the code#2) >>>>>>> >>>>>>> >>>>>>> Or does your code simply open, and use the file descriptors >>>>>>> without any error checking what so ever ? >>>>>>> >> I dont use error codes to check , but I have seen in the >>>>>>> oscilloscope that the signal transition is happening according to my >>>>>>> code. >>>>>>> >>>>>>> -Rp >>>>>>> >>>>>>> >>>>>>> On Wednesday, July 13, 2016 at 8:52:30 PM UTC+5:30, William Hermans >>>>>>> wrote: >>>>>>>> >>>>>>>> When I try to do the same using a user space C application I dont >>>>>>>>> get the expected response.I am running this app as sudo'er and I have >>>>>>>>> oscilloscope'd the timings of HIGH/LOW levels of the GPIOs and >>>>>>>>> compared it >>>>>>>>> with that of the manually writing procedure of GPIOS. The waveform >>>>>>>>> and the >>>>>>>>> timing diagrams almost matches (95%) >>>>>>>>> >>>>>>>> >>>>>>>> I'm not exactly sure what you saying here . . . However, in code >>>>>>>> are you actually checking for errors, and error codes. Or does your >>>>>>>> code >>>>>>>> simply open, and use the file descriptors without any error checking >>>>>>>> what >>>>>>>> so ever ? >>>>>>>> >>>>>>>> Seeing the code would probably help a lot. >>>>>>>> >>>>>>>> On Wed, Jul 13, 2016 at 2:41 AM, Raulp <imsaura...@gmail.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> I have interfaced a hardware using the 5 Gpios on BBB.I can talk >>>>>>>>> to this device using GPIOs by manually (echoing 0 and 1 to the GPIOS) >>>>>>>>> writing to it in the sys/class/gpio directory by first exporting >>>>>>>>> the Gpios and configuring their directions and value.It works >>>>>>>>> perfectly >>>>>>>>> fine. >>>>>>>>> But, >>>>>>>>> When I try to do the same using a user space C application I dont >>>>>>>>> get the expected response.I am running this app as sudo'er and I have >>>>>>>>> oscilloscope'd the timings of HIGH/LOW levels of the GPIOs and >>>>>>>>> compared it >>>>>>>>> with that of the manually writing procedure of GPIOS. The waveform >>>>>>>>> and the >>>>>>>>> timing diagrams almost matches (95%) >>>>>>>>> So, >>>>>>>>> What could mysteriously be missing here.?I can go deep into >>>>>>>>> analyzing the wave-forms and timing diagrams as well if there is an >>>>>>>>> issue >>>>>>>>> in the timings of the Signals. >>>>>>>>> Please advice.Thanks in advance ! >>>>>>>>> -Rp >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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 beagleboard...@googlegroups.com. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/beagleboard/cb65b710-203e-4579-8c08-e2b817dc7a03%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/beagleboard/cb65b710-203e-4579-8c08-e2b817dc7a03%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> 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 beagleboard...@googlegroups.com. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/beagleboard/521956ed-983d-49b9-85f2-62e269dcf7fa%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/beagleboard/521956ed-983d-49b9-85f2-62e269dcf7fa%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>>> 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 beagleboard+unsubscr...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/beagleboard/68d794b1-fdd4-49de-acd0-30923269f437%40googlegroups.com >>>> <https://groups.google.com/d/msgid/beagleboard/68d794b1-fdd4-49de-acd0-30923269f437%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> 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 beagleboard+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/CALHSORpo7cvqW49gUCsS7-g-Sm-j2Zy_k8RqkdscPVj4Do6bzw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.