TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: elfrancho en 16 de Septiembre de 2010, 11:46:51
-
Una vez que grabo el micro, cuando lo pongo en la placa, funciona el programa pero muuuuuuy lento...
Por ejemplo prendo un led con B5 en 1, pongo delay_ms(100) y lugo apago el led... pero en lugar de 100 ms, demora una eternidad, lo hace LEEEEEEEENTO... COMO CADA 10 SEGUNDOS hace el cambio...
aqui el codigo
#include <16F628A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES MCLR //Master Clear pin enabled
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#use delay(clock=4000000)
#use rs232(baud=300,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_oscillator(False);
set_tris_a (00000000);
set_tris_B (00000000);
// TODO: USER CODE!!
while (1){
delay_ms(100);
output_high(pin_B5);
delay_ms(100);
output_low(pin_B5);
}
}
-
Configura el oscilador interno, no le coloques false.
Saludos!
-
Configura el oscilador interno, no le coloques false.
Saludos!
Gracias.. pero soy nuevo en ccs.... que deberia poner en lugar de false???
-
SOLUCIONADO!!!!!!
setup_oscillator(OSC_4MHZ);
ESTO ERA LO QUE FALTABA
Ahora OTRAAAAA CONSULTA !!!!!
El pin Tx cuando no transmite nada està en 1.... y en este pin tengo un transmisor RF de 433mhz... el cual queda constantemente transmitiendo el 1 por lo tanto calienta un poco... que puedo hacer al respecto!!!! ???
Saludos amigos y gracias por su ayuda -111
-
Estas visualizando siempre un 1 en la transmision??.. o estas probando que esta a 1 el pin?,
-
he agregado a mi código:
while (1){
delay_ms(500);
printf("hola mundo");
}
y el pin Tx del pic transmite perfectamente (lo veo en el osciloscopio)
El problema es que cuando el pic NO ESTÁ TRANSMITIENDO, tx se mantiene en valor alto (5v) y el transmisosr de RF queda transmitiendo un 1 y calienta)....
La pregunta es si si puede hacer que en reposo (sin transmision) el pin tx esté en 0
Saludos !!!!
-
desconozco si es normal en esos modulos algun calentamiento moderado. El estado de la linea por protocolo es 1. Pero no es que se este transmitiendo ese 1 siempre, la transmision inicia despues del bit de inicio.