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