[beagleboard] I wanna 8bit gpio control

2014-07-27 Thread kthabc2002

/sys/class/gpio/export  this driver file i have used.

but this control only one bit. so, i try to 8bit control like this

#include bb_gpio.h
#include stdio.h
#include sys/time.h
//#include string.h

void main(void)
{
gpio_export(p9_11); gpio_export(p9_12);
gpio_export(p9_13); gpio_export(p9_14);
gpio_export(p9_15); gpio_export(p9_16);
gpio_export(p9_17); gpio_export(p9_18);

gpio_direction(p9_11,out); gpio_direction(p9_12,out);
gpio_direction(p9_13,out); gpio_direction(p9_14,out);
gpio_direction(p9_15,out); gpio_direction(p9_16,out);
gpio_direction(p9_17,out); gpio_direction(p9_18,out);
 while(1){
pin_write(p9_11,1); pin_write(p9_12,1);
pin_write(p9_13,1); pin_write(p9_14,1);
pin_write(p9_15,1); pin_write(p9_16,1);
pin_write(p9_17,1); pin_write(p9_18,1);
sleep(1);
pin_write(p9_11,0); pin_wirte(p9_12,0);
pin_write(p9_13,0); pin_wirte(p9_14,0);
pin_write(p9_15,0); pin_wirte(p9_16,0);
pin_write(p9_17,0); pin_wirte(p9_18,0);
sleep(1);
};
}


#include bb_gpio.h

#ifndef BB_GPIO_H_
#define BB_GPIO_H_

#include stdio.h
#include string.h

/
* BB_GPIO headerfile
* This file only used to gpio control
* other feature using device-tree-overlay
* when using GPIO, the pin work to MODE7
*=formula==
* GPIO N1[N2]
* gpio_number = (32 x N1) + N2
*==
*/

#define out 1
#define in 0

#define export_PATH /sys/class/gpio/export
#define value_PATH /sys/class/gpio/gpio%d/value
#define direction_PATH /sys/class/gpio/gpio%d/direction
#define unexport_PATH /sys/class/gpio/unexport

//*P9***
#define p9_11  30
#define p9_12  60
#define p9_13  31
#define p9_14 50
#define p9_15 48
#define p9_16 51
#define p9_17 5
#define p9_18 4
//#define p9_19 13
//#define p9_20 12
#define p9_21 3
#define P9_22 2
#define p9_23 49
#define p9_24 15
#define p9_25 117
#define p9_26 14
#define p9_27 115
//#define p9_28 113
//#define p9_29 111
#define p9_30 112
//#define p9_31 110
#define p9_41 20
//#define p9_41 116
//#define p9_42 114
#define p9_42 7
//*


//*P8***
//*



//**function*
int gpio_export(int);
int gpio_unexport(int);
int gpio_direction(int, int);
int pin_write(int, int);
int pin_read(int);
//***


#endif /*BB_GPIO_*/

int gpio_export(int gpio_number)
{
FILE* fp=0;

if((fp = fopen(export_PATH,w))==NULL){
printf(Cannot open export file(%s).\n, export_PATH);
return -1;
}
fprintf(fp,%d,gpio_number);
fclose(fp);
}

int gpio_unexport(int gpio_number)
{
FILE* fp;

if((fp = fopen(unexport_PATH,w))==NULL){
printf(Cannot open unexport file(%s).\n, unexport_PATH);
return -1;
}
fprintf(fp,%d,gpio_number);
fclose(fp);
}

int gpio_direction(int gpio_number,int direction)
{
FILE* fp;
char set_value[4]={0};
char dir_path[50]={0};
sprintf(dir_path, direction_PATH, gpio_number);
if((fp = fopen(dir_path,w))==NULL){
printf(Cannot open direction file(%s).\n,dir_path);
return -1;
}
 rewind(fp);
if(direction == out){
strcpy(set_value,out);
fwrite(set_value,sizeof(char),3,fp);
fclose(fp);
} else if(direction == in){
strcpy(set_value,in);
fwrite(set_value,sizeof(char),2,fp);
fclose(fp);
} else{
printf(invalue pin mode(%d)\n,direction);
return -1;
}
fclose(fp);
return 1;
}

int pin_write(int gpio_number,int value)
{
FILE* fp;
char val_path[50]={0};
char set_value[2]={0};

sprintf(val_path, value_PATH, gpio_number);
if((fp = fopen(val_path,w))==NULL){
printf(Cannot open value file(%s).\n,val_path);
return -1;
}

rewind(fp);
if(value == 1){
strcpy(set_value,1);
}
else if(value == 0){
strcpy(set_value,0);
}
else {
printf(invalid value pin(%d)(%d)\n, gpio_number, value);
return -1;
}

fwrite(set_value, sizeof(char), 1, fp);
fclose(fp);
return 0;
}
 
int pin_read(int gpio_number)
{
FILE* fp;
int value=0;
char val_path[50]={0};

sprintf(val_path, value_PATH, gpio_number);
if((fp = fopen(val_path,r))==NULL){
printf(Cannot open value file(%s).\n,val_path);
return -1;
}

rewind(fp);
value = fgetc(fp) - '0';
fclose(fp);
return value;
}




but compile error...

root@beaglebone:/home/debian/workspace/sources/gpio_control# \
 gcc -o led_blink led_blink.c
/tmp/ccfrwmlk.o: In function `main':
led_blink.c:(.text+0x5c8): undefined reference to `pin_wirte'
led_blink.c:(.text+0x5e0): undefined reference to `pin_wirte'
led_blink.c:(.text+0x5f8): undefined reference to `pin_wirte'
led_blink.c:(.text+0x610): undefined reference to `pin_wirte'
collect2: ld returned 1 exit status
root@beaglebone:/home/debian/workspace/sources/gpio_control#

i don't know why .. help please

-- 
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 

[beagleboard] i wanna 8bit gpio control

2014-07-27 Thread kthabc2002
/sys/class/gpio/export  this driver file i have used.

but this control only one bit. so, i try to 8bit control like this

#include bb_gpio.h
#include stdio.h
#include sys/time.h
//#include string.h

void main(void)
{
gpio_export(p9_11); gpio_export(p9_12);
gpio_export(p9_13); gpio_export(p9_14);
gpio_export(p9_15); gpio_export(p9_16);
gpio_export(p9_17); gpio_export(p9_18);

gpio_direction(p9_11,out); gpio_direction(p9_12,out);
gpio_direction(p9_13,out); gpio_direction(p9_14,out);
gpio_direction(p9_15,out); gpio_direction(p9_16,out);
gpio_direction(p9_17,out); gpio_direction(p9_18,out);
 while(1){
pin_write(p9_11,1); pin_write(p9_12,1);
pin_write(p9_13,1); pin_write(p9_14,1);
pin_write(p9_15,1); pin_write(p9_16,1);
pin_write(p9_17,1); pin_write(p9_18,1);
sleep(1);
pin_write(p9_11,0); pin_wirte(p9_12,0);
pin_write(p9_13,0); pin_wirte(p9_14,0);
pin_write(p9_15,0); pin_wirte(p9_16,0);
pin_write(p9_17,0); pin_wirte(p9_18,0);
sleep(1);
};
}


#include bb_gpio.h

#ifndef BB_GPIO_H_
#define BB_GPIO_H_

#include stdio.h
#include string.h

/
* BB_GPIO headerfile
* This file only used to gpio control
* other feature using device-tree-overlay
* when using GPIO, the pin work to MODE7
*=formula==
* GPIO N1[N2]
* gpio_number = (32 x N1) + N2
*==
*/

#define out 1
#define in 0

#define  export_PATH  /sys/class/gpio/export
#define  value_PATH /sys/class/gpio/gpio%d/value
#define  direction_PATH /sys/class/gpio/gpio%d/direction
#define unexport_PATH /sys/class/gpio/unexport

//*P9***
#define  p9_11   30
#define  p9_12   60
#define  p9_13   31
#define  p9_14  50
#define  p9_15  48
#define  p9_16  51
#define  p9_17 5
#define  p9_18 4
//#define  p9_19 13
//#define  p9_20 12
#define  p9_21 3
#define P9_22 2
#define  p9_23  49
#define  p9_24  15
#define  p9_25  117
#define  p9_26  14
#define  p9_27  115
//#define  p9_28  113
//#define  p9_29  111
#define  p9_30 112
//#define  p9_31  110
#define  p9_41  20
//#define  p9_41  116
//#define  p9_42  114
#define  p9_42 7
//*


//*P8***
//*



//**function*
int gpio_export(int);
int gpio_unexport(int);
int gpio_direction(int, int);
int pin_write(int, int);
int pin_read(int);
//***


#endif /*BB_GPIO_*/

int gpio_export(int gpio_number)
{
FILE* fp=0;

if((fp = fopen(export_PATH,w))==NULL){
printf(Cannot open export file(%s).\n, export_PATH);
return -1;
}
fprintf(fp,%d,gpio_number);
fclose(fp);
}

int gpio_unexport(int gpio_number)
{
FILE* fp;

if((fp = fopen(unexport_PATH,w))==NULL){
printf(Cannot open unexport file(%s).\n, unexport_PATH);
return -1;
}
fprintf(fp,%d,gpio_number);
fclose(fp);
}

int gpio_direction(int gpio_number,int direction)
{
FILE* fp;
char set_value[4]={0};
char dir_path[50]={0};
sprintf(dir_path, direction_PATH, gpio_number);
if((fp = fopen(dir_path,w))==NULL){
printf(Cannot open direction file(%s).\n,dir_path);
return -1;
}
 rewind(fp);
if(direction == out){
strcpy(set_value,out);
fwrite(set_value,sizeof(char),3,fp);
fclose(fp);
} else if(direction == in){
strcpy(set_value,in);
fwrite(set_value,sizeof(char),2,fp);
fclose(fp);
} else{
printf(invalue pin mode(%d)\n,direction);
return -1;
}
fclose(fp);
return 1;
}

int pin_write(int gpio_number,int value)
{
FILE* fp;
char val_path[50]={0};
char set_value[2]={0};

sprintf(val_path, value_PATH, gpio_number);
if((fp = fopen(val_path,w))==NULL){
printf(Cannot open value file(%s).\n,val_path);
return -1;
}

rewind(fp);
if(value == 1){
strcpy(set_value,1);
}
else if(value == 0){
strcpy(set_value,0);
}
else {
printf(invalid value pin(%d)(%d)\n, gpio_number, value);
return -1;
}

fwrite(set_value, sizeof(char), 1, fp);
fclose(fp);
return 0;
}
 
int pin_read(int gpio_number)
{
FILE* fp;
int value=0;
char val_path[50]={0};

sprintf(val_path, value_PATH, gpio_number);
if((fp = fopen(val_path,r))==NULL){
printf(Cannot open value file(%s).\n,val_path);
return -1;
}

rewind(fp);
value = fgetc(fp) - '0';
fclose(fp);
return value;
}




but compile error...

root@beaglebone:/home/debian/workspace/sources/gpio_control# \
 gcc -o led_blink led_blink.c
/tmp/ccfrwmlk.o: In function `main':
led_blink.c:(.text+0x5c8): undefined reference to `pin_wirte'
led_blink.c:(.text+0x5e0): undefined reference to `pin_wirte'
led_blink.c:(.text+0x5f8): undefined reference to `pin_wirte'
led_blink.c:(.text+0x610): undefined reference to `pin_wirte'
collect2: ld returned 1 exit status
root@beaglebone:/home/debian/workspace/sources/gpio_control#

i don't know why .. help please

-- 
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 

Re: [beagleboard] i wanna 8bit gpio control

2014-07-27 Thread Christopher Pascoe
If you look closely at the error text you'll see you misspelt write as
wirte.
On 27 Jul 2014 04:10, kthabc2...@gmail.com wrote:

 /sys/class/gpio/export  this driver file i have used.

 but this control only one bit. so, i try to 8bit control like this

 #include bb_gpio.h
 #include stdio.h
 #include sys/time.h
 //#include string.h

 void main(void)
 {
 gpio_export(p9_11); gpio_export(p9_12);
 gpio_export(p9_13); gpio_export(p9_14);
 gpio_export(p9_15); gpio_export(p9_16);
 gpio_export(p9_17); gpio_export(p9_18);

 gpio_direction(p9_11,out); gpio_direction(p9_12,out);
 gpio_direction(p9_13,out); gpio_direction(p9_14,out);
 gpio_direction(p9_15,out); gpio_direction(p9_16,out);
 gpio_direction(p9_17,out); gpio_direction(p9_18,out);
  while(1){
 pin_write(p9_11,1); pin_write(p9_12,1);
 pin_write(p9_13,1); pin_write(p9_14,1);
 pin_write(p9_15,1); pin_write(p9_16,1);
 pin_write(p9_17,1); pin_write(p9_18,1);
 sleep(1);
 pin_write(p9_11,0); pin_wirte(p9_12,0);
 pin_write(p9_13,0); pin_wirte(p9_14,0);
 pin_write(p9_15,0); pin_wirte(p9_16,0);
 pin_write(p9_17,0); pin_wirte(p9_18,0);
 sleep(1);
 };
 }


 #include bb_gpio.h

 #ifndef BB_GPIO_H_
 #define BB_GPIO_H_

 #include stdio.h
 #include string.h

 /
 * BB_GPIO headerfile
 * This file only used to gpio control
 * other feature using device-tree-overlay
 * when using GPIO, the pin work to MODE7
 *=formula==
 * GPIO N1[N2]
 * gpio_number = (32 x N1) + N2
 *==
 */

 #define out 1
 #define in 0

 #define  export_PATH  /sys/class/gpio/export
 #define  value_PATH /sys/class/gpio/gpio%d/value
 #define  direction_PATH /sys/class/gpio/gpio%d/direction
 #define unexport_PATH /sys/class/gpio/unexport

 //*P9***
 #define  p9_11   30
 #define  p9_12   60
 #define  p9_13   31
 #define  p9_14  50
 #define  p9_15  48
 #define  p9_16  51
 #define  p9_17 5
 #define  p9_18 4
 //#define  p9_19 13
 //#define  p9_20 12
 #define  p9_21 3
 #define P9_22 2
 #define  p9_23  49
 #define  p9_24  15
 #define  p9_25  117
 #define  p9_26  14
 #define  p9_27  115
 //#define  p9_28  113
 //#define  p9_29  111
 #define  p9_30 112
 //#define  p9_31  110
 #define  p9_41  20
 //#define  p9_41  116
 //#define  p9_42  114
 #define  p9_42 7
 //*


 //*P8***
 //*



 //**function*
 int gpio_export(int);
 int gpio_unexport(int);
 int gpio_direction(int, int);
 int pin_write(int, int);
 int pin_read(int);
 //***


 #endif /*BB_GPIO_*/

 int gpio_export(int gpio_number)
 {
 FILE* fp=0;

 if((fp = fopen(export_PATH,w))==NULL){
 printf(Cannot open export file(%s).\n, export_PATH);
 return -1;
 }
 fprintf(fp,%d,gpio_number);
 fclose(fp);
 }

 int gpio_unexport(int gpio_number)
 {
 FILE* fp;

 if((fp = fopen(unexport_PATH,w))==NULL){
 printf(Cannot open unexport file(%s).\n, unexport_PATH);
 return -1;
 }
 fprintf(fp,%d,gpio_number);
 fclose(fp);
 }

 int gpio_direction(int gpio_number,int direction)
 {
 FILE* fp;
 char set_value[4]={0};
 char dir_path[50]={0};
 sprintf(dir_path, direction_PATH, gpio_number);
 if((fp = fopen(dir_path,w))==NULL){
 printf(Cannot open direction file(%s).\n,dir_path);
 return -1;
 }
  rewind(fp);
 if(direction == out){
 strcpy(set_value,out);
 fwrite(set_value,sizeof(char),3,fp);
 fclose(fp);
 } else if(direction == in){
 strcpy(set_value,in);
 fwrite(set_value,sizeof(char),2,fp);
 fclose(fp);
 } else{
 printf(invalue pin mode(%d)\n,direction);
 return -1;
 }
 fclose(fp);
 return 1;
 }

 int pin_write(int gpio_number,int value)
 {
 FILE* fp;
 char val_path[50]={0};
 char set_value[2]={0};

 sprintf(val_path, value_PATH, gpio_number);
 if((fp = fopen(val_path,w))==NULL){
 printf(Cannot open value file(%s).\n,val_path);
 return -1;
 }

 rewind(fp);
 if(value == 1){
 strcpy(set_value,1);
 }
 else if(value == 0){
 strcpy(set_value,0);
 }
 else {
 printf(invalid value pin(%d)(%d)\n, gpio_number, value);
 return -1;
 }

 fwrite(set_value, sizeof(char), 1, fp);
 fclose(fp);
 return 0;
 }

 int pin_read(int gpio_number)
 {
 FILE* fp;
 int value=0;
 char val_path[50]={0};

 sprintf(val_path, value_PATH, gpio_number);
 if((fp = fopen(val_path,r))==NULL){
 printf(Cannot open value file(%s).\n,val_path);
 return -1;
 }

 rewind(fp);
 value = fgetc(fp) - '0';
 fclose(fp);
 return value;
 }




 but compile error...

 root@beaglebone:/home/debian/workspace/sources/gpio_control# \
  gcc -o led_blink led_blink.c
 /tmp/ccfrwmlk.o: In function `main':
 led_blink.c:(.text+0x5c8): undefined reference to `pin_wirte'
 led_blink.c:(.text+0x5e0): undefined reference to `pin_wirte'
 led_blink.c:(.text+0x5f8): undefined reference to `pin_wirte'
 led_blink.c:(.text+0x610): undefined reference to `pin_wirte'
 collect2: ld