pic Jul. 2016 | Page 91

a="hello"; b="goodbye"; for (d=0; d<7; d++) c=GetChar(b,d); for (d=0; d<5; d++) c=GetChar(a,d); /* index through the string */ /* ditto */ } #include "getchar.c" O, incluso, podrá escribir directamente en los puertos, como en test7.c. En este caso, hemos vuelto a comentarlo para la más sencilla comprensión: /* test i/o port modes */ #include "io.c" char a, b; main() { SetP_A(0x03); SetP_B(0x0f); a=RdPortA(); b=RdPortB(); WrPortA(0x1); WrPortB(0x55); ‘ Se establece como puerto A la dirección 0x03 ‘ Se establece como puerto B la dirección 0x0F ‘ El valor del puerto A se guarda en la variable a ‘ El valor del puerto B se guarda en la variable b ‘ Escribimos en el puerto A el valor 0x01 ‘ Escribimos en el puerto B el valor 0x55 } En realidad es posible asignar como puerto A o B cualquier dirección física de memoria de datos, aunque esta no sea propiamente un puerto. Esto puede ser útil para manejar directamente registros como STATUS o INTCON. Pero dejamos para el último apartado lo no descrito en los ejemplos, es decir, aquellas funciones incluidas en las librerías. 6.4 Librerías y funciones 6.4.1 La librería GETCHAR Esta librería sólo contiene la función GetChar (cadena, índice), que, como pudimos ver en el ejemplo test6.c, coge de una cadena de caracteres (definida, por ejemplo, como a = ”cadena”) el carácter situado en la posición índice. Por ejemplo, b = GetChar (a,2) nos daría b = “d”, ya que se empieza a contar desde 0. 89