From: Alexandre P. N. <al...@om...> - 2006-05-31 13:28:29
|
Ben Erridge escreveu: > LOL, I'm a programmer I have 0 soldering skills. > So for setting GPIO programatically the only example I have found was > in the S30bluetooth module, which does this: > /sbin/modprobe proc_gpio > echo AF1 out > /proc/gpio/GPIO12 > > So I looked in /proc/gpio which has GPIO01-GPIO84 plus GAFR,GPDR, and > GPLR > the lines in those files look something like > file GPIO16 reads: > 16 GPIO in set > > file GPIO42 reads: > 42 AF3 in set > > So, if I want to set a GPIO I can follow the example in S30bluetooth > but change the file being written? Also there are some file which have > GPIO in field 2 some have AF3 in field 2, some have AF1, etc. > what does the second field mean? > Ben > The second field mean the pin usage, a pin can be bound to several "alternate functions", besides being a GPIO. AF1 stands for alternate function 1, and so on. if you want to use a pin as a GPIO, you first have to make sure that pin isn't in use by anything, and then check whether it's already in GPIO mode or is allocated to some alternate function. If it's, and you're sure that it is harmless to redirect it to GPIO mode, you can "echo GPIO in >/proc/gpio/GPIOx" for input mode or "echo GPIO out >/proc/gpio/GPIOx" for output mode, where x is the pin id. - Alexandre |