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 
> <javascript:>> 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 
>> <javascript:>> 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 <javascript:>.
>>> 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.
For more options, visit https://groups.google.com/d/optout.
#include<iostream>
#include<unistd.h>		//for usleep
#include<string.h>
#include"GPIO.h"


#define CON1		23	
#define CON2		112	
#define CON3		67	
#define DATA1		32	
#define DATA2		14	

#define ms_delay_1     50000
#define ms_delay_2      50000

using namespace exploringBB;
using namespace std;
GPIO outGPIO_CON2 (CON2), outGPIO_CON3 (CON3), outGPIO_DATA1 (DATA1);
GPIO inGPIO_DATA2 (DATA2), outGPIO_CON1 (CON1);
main (int argc, char *argv[])
{



  cout << "TX--->COMMAND(2)" << endl;
  outGPIO_CON1.setDirection (OUTPUT);
  outGPIO_CON1.setValue (LOW);
  //usleep (ms_delay_1);



  cout << "TX--->COMMAND(3)" << endl;
  outGPIO_CON1.setValue (HIGH);
  usleep (ms_delay_2);


  cout <<
    "TX--->WRITE_DATA(2130)-"
    << endl;
  outGPIO_CON2.setDirection (OUTPUT);	//112
//  outGPIO_CON1.setDirection (OUTPUT); //23
  outGPIO_DATA1.setDirection (OUTPUT);	//32
  outGPIO_CON3.setDirection (OUTPUT);	//67
  inGPIO_DATA2.setDirection (INPUT);	//14

  //write 2(0010)
  cout << "TX--->WRITE_DATA(2130)----------->TX 2" << endl;

  outGPIO_CON2.setValue (LOW);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);


  outGPIO_CON2.setValue (LOW);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);

  outGPIO_CON2.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);

  outGPIO_CON2.setValue (LOW);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);


  //write 1(0001)
  cout << "TX--->WRITE_DATA(2130)----------->TX 1" << endl;
  outGPIO_CON2.setValue (LOW);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);



  outGPIO_CON2.setValue (LOW);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);

  outGPIO_CON2.setValue (LOW);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);

  outGPIO_CON2.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);


  outGPIO_DATA1.setValue (HIGH);
  usleep (ms_delay_1);


  //write 3(0011)
  cout << "TX--->WRITE_DATA(2130)----------->TX 3" << endl;
  outGPIO_CON2.setValue (LOW);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);



  outGPIO_CON2.setValue (LOW);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);

  outGPIO_CON2.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);

  outGPIO_CON2.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);


  //write 0(0000)
  cout << "TX--->WRITE_DATA(2130)----------->TX 0" << endl;
  outGPIO_CON2.setValue (LOW);
  usleep(ms_delay_2);
  outGPIO_CON3.setValue (HIGH);
  usleep (ms_delay_2);
  outGPIO_CON3.setValue (LOW);
  usleep (ms_delay_1);

 
  cout << "End ...." << endl;
  while (1);

}

Attachment: code.bash
Description: Binary data

Attachment: GPIO.7z
Description: application/7z-compressed

Reply via email to