Autor Tema: Definir pin en CCS?  (Leído 2085 veces)

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

Desconectado morelius21

  • PIC12
  • **
  • Mensajes: 55
Definir pin en CCS?
« en: 31 de Marzo de 2014, 07:28:24 »
Hola,

Como novato que soy, tengo otro problema.

Veo que en iar puedo definir un pin así:

#define LED1   P1OUT_bit.P1OUT_0

Pero este sistema solo me funciona en IAR pero en CCS no. Creo que es debido a un problema con las librerías. En Iar se usa io430.h pero no esta en CCS.

Se que en CCS puedo hacer lo siguiente:

#define LED1  BIT0

Pero eso no me permite acceder directamente al pin en cuestión,

Si alguien sabe una alternativa estaría muy agradecido.

Saludos y gracias

Desconectado solapower

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 209
Re: Definir pin en CCS?
« Respuesta #1 en: 31 de Marzo de 2014, 07:46:28 »
Si miras el archivo de cabecera de cada micro podrás ver como define cad pin.
En tu caso sería:  #define LED1 PIN_B0  si lo quieres poner en es pin del puerto B.
Saludos

Desconectado morelius21

  • PIC12
  • **
  • Mensajes: 55
Re: Definir pin en CCS?
« Respuesta #2 en: 03 de Abril de 2014, 07:57:02 »
Hola,

Revisaré los encabezados y listo. muchas gracias

Desconectado oscarjcarrillop

  • PIC10
  • *
  • Mensajes: 1
Re: Definir pin en CCS?
« Respuesta #3 en: 20 de Agosto de 2019, 14:05:27 »
Buenas, aunque es un hilo bien antiguo pero igual no deja de ser interesante para muchos incluyéndome e igualmente para los que estén en etapa de aprendizaje, pues aquí dejo mi aporte:

Primero toca definir el puerto como byte de dicho pin a manipular:

#byte   PORTB = getenv("SFR:PORTB")  // SE DEFINE COMO BYTE EL PUERTO PARA PODER ACCEDER AL PIN DIRECTAMENTE

esta seria la forma mas practica para direccionarlo, pues el compilador CCS de forma autónoma toma la dirección del puerto del pic que se va a utilizar ( es decir que de esta forma funciona para todos los pic), por que no todos los pic tienen dicho puerto en la misma dirección por que la otra forma seria:

#byte   PORTB = 0x07  // SE DEFINE COMO BYTE EL PUERTO PARA PODER ACCEDER AL PIN DIRECTAMENTE

pero en este caso la dirección 0x07 correspondería al registro del puerto b del pic16f876a, si se va a usar otro pic tocaria mirar la hoja de datos de dicho pic para ingresar la dirección correcta del puerto a utilizar.

Ahora se define el pin a utilizar:

#bit    led = PORTB.1 // DEFINE PIN 1 del puerto b

ya solo quedaría ponerlo como salida como el siguiente ejemplo y asi funcionaria:

output_b (0x00);            //Borra las salidas del puerto b
set_tris_b(0x01);            //RB0/INT entrada, resto salidas

 void mi_led()      //
{
     if (led == 0)  led = 1;   // lee la salida, si esta en '0' la cambia a '1',
     else led = 0;                // si ya esta en '1', la cambia a '0'.
}

adjunto codigo ejemplo,

Espero les sirva, buena suerte, saludos.

« Última modificación: 20 de Agosto de 2019, 18:19:40 por oscarjcarrillop »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7681
Re:Definir pin en CCS?
« Respuesta #4 en: 20 de Agosto de 2019, 14:37:54 »
Hacer lo que planteas es un mal uso del compilador.

La gente detras de CCS dedico un buen tiempo para que unicamente utilicen las funciones que ellos hicieron, y al hacer eso estas pasando todo por alto. Entonces... para que usar CCS? Usa XC8 y modifica los registros a tu gusto.


 

anything