bueno, estoy practicando un poco con ccs y me surge la siguiente duda:
estoy escribiendo un codigo que cada vez que se pusla RA0 se dispara una secuencia que enciende leds conectados a RA1, RA2 y RA3 con un delay de un segundo entre caso y caso. una vez cumplida la secuencia se vuelve a esperar que se pulse RA0.
antes que nada el codigo:
[font=Verdana]
/////////////////////////////////////////////////////
// Pic 16F84A //
// por pulsar en RA0, se inicia secuencia en RA1-3 //
/////////////////////////////////////////////////////
#include <16F84.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT //fusibles
#use delay(clock=4000000) //velocidad del cristal
#use fast_io(A)
#byte port_a=5 //puerto A
int x=0; //variable entera de 8 bits
void main (){
set_tris_a(0b00001); //RA0 como entrada, el resto como salidas
do {
if (!input(pin_A0)) { //si se da el negado de A0 entonces...
for (x=0;x<=3;++x) { //hacer hasta que x sea igual a 3, y en cada pasada incrementar x en uno
output_bit(pin_ax,1); //pone RA"x" en 1
delay_ms(1000); //espera 1 segundo
output_bit(pin_ax,0); //pone RA"x" en 0
}
}
} while (TRUE)
}
[/font]
ahora el problema:
este codigo obviamente tiene un error: output_bit(pin_ax,1) no es valido porque pin_ax no existe, mi intencion era que en esa linea x se tome como un valor que defina el pin que quiero poner en 1 o en 0. es decir para x=1 pin_ax seria igual a pin_a1, etc. me doy cuenta que como lo escribi es una animalada y me estuve leyendo como definir tipos de variables y constantes pero no encuentro como se podria hacer lo que quiero, me pregunto si alguien me puede dar la forma correcta de hacerlo, si es que es posible.
espero no estar preguntando una animalada y desde ya muchas gracias!!!