#include <16F84A.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#byte port_a=5
#bit boton=5.0
#byte port_b=6
#bit led=6.0
void main(void)
{
set_tris_a(0xF);
set_tris_b(0x00);
while(1)
{
if(boton==1)
led=1;
else
led=0;
}
}
#include <16F84A.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#byte port_b=6
#bit boton=6.0
#bit led=6.1
void main(void)
{
set_tris_b(0b10000000);
while(1)
{
if(boton==1)
led=1;
else
led=0;
}
}#byte port_a=5
#bit boton=5.0 Quise poner todo en el puerto B, o sea el pin B0 el boton y la salida (que la simulo con un led) en el B1:Has puesto el TRIS al revés, declarando como entrada el bit PORTB.7 en lugar del PORTB.0 que necesitasCódigo: [Seleccionar]#include <16F84A.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#byte port_b=6
#bit boton=6.0
#bit led=6.1
void main(void)
{
set_tris_b(0b10000000);
while(1)
{
if(boton==1)
led=1;
else
led=0;
}
}
Pero no anda...Que es lo que esta mal??
Debes de utilizar las instrucciones input() para leer un valor del puerto y output_bit() para poner una salida en un determinado estado. Mira la ayuda de CCS para estas dos funciones y estará resuelto tu problema.No es imprescindible Jesús; la sintaxis de arquito también es válida (y a mí particularmente me gusta más).
Un saludo
Cita de: jfh900 en 10 Junio 2007, 21:37:08
Debes de utilizar las instrucciones input() para leer un valor del puerto y output_bit() para poner una salida en un determinado estado. Mira la ayuda de CCS para estas dos funciones y estará resuelto tu problema.
Un saludo
No es imprescindible Jesús; la sintaxis de arquito también es válida (y a mí particularmente me gusta más).
#bit led = PORTB.RB2
#bit led_tris = TRISB.RB2led_tris=1;
led=1;
led=0;#include <16F84A.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#bit led = PORTB.RB1
#bit led_tris = TRISB.RB1
void main(void)
{
led_tris=0;
led=1;
delay_ms(2000);
led=0;
}Clean: Deleting intermediary and output files.
Clean: Deleted file "Codigo.$$$".
Clean Warning: File "C:\Proyectos\Prueba de Bits\Codigo.o" doesn't exist.
Clean: Deleted file "Codigo.ERR".
Clean: Done.
Executing: "C:\Archivos de programa\PICC\Ccsc.exe" +FM "Codigo.c" +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 51 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 6(2,5): A numeric expression must appear here
*** Error 48 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 6(15,23): Expecting a (
*** Error 48 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 6(17,22): Expecting a (
*** Error 48 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 8(1,4): Expecting a (
*** Error 12 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 11(1,9): Undefined identifier led_tris
*** Error 12 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 13(1,4): Undefined identifier led
*** Error 12 "C:\Proyectos\Prueba de Bits\Codigo.c" Line 15(1,4): Undefined identifier led
7 Errors, 0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Mon Jun 11 15:10:31 2007
Expression must evaluate to a constant
(salidas)
A=0; //puedes hacerlo de varias formas //output_low(A); //putput_low(PIN_A0); //output_bit(A,0);
X=x0; ////output_bit(X,x0); ////output_bit(PIN_A2,x0);