Estoy usando el microcontrolador pic16f887 y el compilador Hi-tech C. Quiero implementar la matriz de puerto de pines en alta tecnología, pero no me permite hacerlo. ¿Cuál es la forma correcta de acceder a la dirección pin con la indexación, como lo hacemos en arduino.
quiero una matriz como
bit * lcd[4]={RA0,RA1,RB0,RC4};
da los siguientes errores
- las matrices de bits o los punteros a bits son ilegales
- se requiere expresión constante
- conversión ilegal de entero a puntero
Claramente significa que no puedo declarar Arrays of Bit, ¿cuál es la otra manera de acceder a los números de pin a través de la indexación en el estilo C estándar o cualquier otro truco relacionado con el compilador?
En los archivos de encabezado, los pines se declaran de las siguientes maneras
// Register: TRISB
volatile unsigned char TRISB @ 0x086;
// bit and bitfield definitions
volatile bit TRISB0 @ ((unsigned)&TRISB*8)+0;
volatile bit TRISB1 @ ((unsigned)&TRISB*8)+1;
volatile bit TRISB2 @ ((unsigned)&TRISB*8)+2;
volatile bit TRISB3 @ ((unsigned)&TRISB*8)+3;
volatile bit TRISB4 @ ((unsigned)&TRISB*8)+4;
volatile bit TRISB5 @ ((unsigned)&TRISB*8)+5;
volatile bit TRISB6 @ ((unsigned)&TRISB*8)+6;
Mi problema es que, no quiero nombrar el puerto que quiero indexar para que pueda llamarlos con sus números como lo hacemos en estilo arduino
digitalWrite(13,HIGH);