Autor Tema: CCS define pin en variable array[]??  (Leído 1841 veces)

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

Desconectado Berto

  • PIC16
  • ***
  • Mensajes: 191
CCS define pin en variable array[]??
« en: 20 de Agosto de 2016, 18:24:22 »
Para empezar ni siquiera e utilizado esto:

#bit activar=PORTA.1 //Compila desde hace mucho pero no me funciona

Y siempre utilizo output_high(PIN_A1); y output_low(PIN_A1);//Es muy directo y legible pero //nefasto cuando tienes un programa muy largo y necesitas cambiar el pin de salida A1 por otro

Y ahora me conviene mucho lo siguiente:

93-#bit azti[0]=porta.1
94-#bit azti[1]=porta.2
95-#bit azti[2]=porta.3//...sucesivo
//Compilacion erronea
//*** Error 86 "Name-program" Line 93(11,12): Expecting =
//*** Error 43 "Ascen_3X8.c" Line 93(13,14): Expecting a declaration



Pretendo que portA1 sea el valor de int1 azti[1] portA2=azti[2] ... sucesivo
¿Se puede hacer esto de alguna otra manera?

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:CCS define pin en variable array[]??
« Respuesta #1 en: 20 de Agosto de 2016, 18:40:00 »
Código: C
  1. #define SALIDA_LED   PIN_A1
  2.  
  3. output_high(SALIDA_LED);
  4. output_low(SALIDA_LED);

Cuando queres cambiar lo de todo el programa simplemente modificas el #define por otra entrada, supongamos RC3

Código: C
  1. #define SALIDA_LED  PIN_C3

---------------------------------------------------

Citar
Y ahora me conviene mucho lo siguiente:

93-#bit azti[0]=porta.1
94-#bit azti[1]=porta.2
95-#bit azti[2]=porta.3//...sucesivo

definir el BYTE de PORTA, y usar:

Código: C
  1. bit_set(PORTA,bit);
  2. bit_clear(PORTA,bit);
  3. bit_test(PORTA,bit);

En bit pones el numero de bit que estas interesado, en ves de tenerlo como un "array" lo accedes de otra forma. el test te sirve para saber si es 1 o 0, los demas creo que estan bastante claros, de todas formas tenes la informacion en el manual de CCS

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re:CCS define pin en variable array[]??
« Respuesta #2 en: 21 de Agosto de 2016, 16:22:03 »
también tienes la opción de utilizar las direcciones de los puertos,

ej:

portb = dirección 6

rb0= dirección 6x8+0 = 48
rb1= dirección 6x8+1 = 49

portc = dirección 7

rc0= dirección 7x8+0 = 56
rc1= dirección 7x8+1 = 57

...

input(56+t))
output_bit(48+t,1)

donde t es una variable entera positiva incremental que puede provenir de bucles o arrays
...
...
...

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek


 

anything