hola Amig@s
Antes que nada desde ya las gracias por su tiempo.
Resulta que recien empieso y agatas se algo de assembler con el casi jubilado 16f84a, nunca me meti con C
Encontre un programa en C usando el 16f628 que casi hace lo que yo quiero, asique me dispuse a meterle mano y aca me quede sin poder resolver la configuracion del puerto. Busque varios ejemplos pero todos hablan de como configurar todo el puerto como i/o, lo que quiero es que en el mismo puerto algunos pin sean entrada y otros salida, esto lo se hacer con asm en el 16f84 pero aca en C con el 16f628 no la termino de entender,
el codigo que tengo es este, donde por lo que leo cuando lo documentan, dice que puerto b esta como salida, pero sin embargo en el esquematico del proteus el RB7 esta como entrada y se activa con un pulsador, y funciona muy bien. Consegui en PIC-C Compiler y funciona bien cuando compilo y con el proteus la simulacion tambien funciona, asique voy probando.
yo quiero que en el pueto A el RA0, RA1, RA2, Y RA3 sean salidas y los demas entradas, y vi que en este micro se puede configurar usando el Osc interno y dejando asi libres los RA7 y RA6 para usarlos como i/o lo mismo con el MCLR RA5 se lo puede usar como i/o, entiendo que usando los FUSES se logra esto,pero no se como agregarle a los FUSES esta indicacion, me parece que ya estan los FUSES como yo quiero, lo que no se es como definir que pin es entrada o salida.
Gracias maig@s
#include <16F628A.h>
#INCLUDE <STDLIB.H>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC //Internal RC Osc
#FUSES PUT //Power Up Timer
#FUSES PROTECT //Code protected from reads
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#use delay(int=4000000,RESTART_WDT)
char Pulsado,i,DecMil,Mil=4,Decena=2,Centena=3,Unidad=1;//Numero sorteado
Unsigned int Numero1,Numero=0;
#include <Sorteador.c>
#include <Display.c>
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_1 );
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);
#use delay (clock=4000000) //Fosc=4Mhz
//#use fast_io(B)
//#use fast_io(A)
set_tris_b(0x80); //portb como salida
set_tris_a(0x00); //porta como Entrada
disable_interrupts(GLOBAL);//desactivadas interrupciones
Sorteo();
while(1){
if(!input(PIN_B7)){
Delay_ms(150);
Pulsado=1;}
if(Pulsado){
For(i=1;i<100;++i)
Mostrar_Numero();//Muestra en el display
Pulsado=0;
}
else{
Sorteo();//Sortea un numero de 4 cifras
Mostrar_Numero();}//Muestra en el display
}
//TODO: User Code
}