Como les va, les dejo una implementación básica para el digitalWrite en CCS.
Muchas veces vi que era necesario portar algún programa de manera sencilla de Arduino a CCS.
Luego de investigar un poco, procedí a realizar lo siguiente.
Primero que nada, abro el device.h del CCS, donde se encuentra la definición de pines. Para mi ejemplo les coloco el del PIC16F1825.
// Constants used to identify pins in the above are:
#define PIN_A0 96
#define PIN_A1 97
#define PIN_A2 98
#define PIN_A3 99
#define PIN_A4 100
#define PIN_A5 101
#define PIN_C0 112
#define PIN_C1 113
#define PIN_C2 114
#define PIN_C3 115
#define PIN_C4 116
#define PIN_C5 117
Luego de eso, puedo ordenar los pines que voy a utilizar de 0 a X, armando un arreglo de la siguiente manera.
// Armamos un arreglo con los pines utilizados.
int8 pines[8] = {98,115,116,117,100,97,101,96};
// Macros auxiliares.
#define HIGH 1
#define LOW 0
Luego la función digitalWrite en cuestión.
// El pin tiene ser 0 a X (el orden lo definimos previamente).
// HIGH o LOW indican el estado.
void digitalWrite(int8 pin, int8 estado);
void digitalWrite(int8 pin, int8 estado){
if(estado==0x01){output_high(pines[pin]);}
else{output_low(pines[pin]);}
}
Por último la implementación.
for(int i=0;i!=8;i++){
digitalWrite(i,HIGH);
delay_ms(250);
}
for(int i=0;i!=8;i++){
digitalWrite(i,LOW);
delay_ms(250);
}
Espero les sirva, saludos !