Autor Tema: Implementación sencilla del digitalWrite en CCS  (Leído 402 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jonathanPIC888

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
Implementación sencilla del digitalWrite en CCS
« en: 29 de Octubre de 2023, 12:05:38 »
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.

Código: [Seleccionar]
// 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.

Código: [Seleccionar]
// 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.
Código: [Seleccionar]
// 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.
Código: [Seleccionar]
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 !



 

anything