TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jonathanPIC888 en 12 de Marzo de 2026, 20:23:47
-
Buenas tardes estimados.
Tengo que migrar un pequeño proyecto al PIC16F13115, del PIC12F1840 que estoy usando actualmente.
El único problema que tengo en toda la migración, es la salida RA5, que no cambia de estado.
El código que estoy utilizando para probar es el siguiente:
#INCLUDE <16F13115.h>
#FUSES WDT // Utilizamos el perro guardián.
#FUSES PUT_64MS // Habilita el power uP timer en 64ms.
#FUSES NOMCLR // Utilizamos el pin MCLR como E/S.
#FUSES PROTECT // Proteje el código del microcontrolador.
#FUSES NOBROWNOUT // No hay reset por bajo voltaje.
#FUSES NOCLKOUT // Utiliza los pines de clk como E/S.
#FUSES FCMEN // Monitor de falla de clock.
#FUSES NOWRT // No hay protección de registros especiales.
#FUSES STVREN // Si la pila se llena, generará un reset.
#FUSES NODEBUG // No utilizaremos código de debug.
#FUSES WDT2048 // Utilizamos el perro guardián cada 2 segundos.
#FUSES NOLVP // No utilizaremos programación a bajo voltaje.
#FUSES NOBOOTBLOCK // No deja espacio para el booteo.
#USE delay (Clock = 32000000,restart_wdt) // Reloj = 32Mhz.
//------------------------------------------------
// Inicialización
//------------------------------------------------
void Inicializacion(void)
{
setup_oscillator(OSC_HFINTRC_32MHZ);
output_a(0x00);
delay_ms(100);
setup_wdt(WDT_2S);
}
//------------------------------------------------
// MAIN
//------------------------------------------------
void main()
{
Inicializacion();
setup_adc_ports(NO_ANALOGS);
while(TRUE) {
output_high(PIN_A5);
delay_ms(500);
output_low(PIN_A5);
delay_ms(500);
restart_wdt();
}
}
Alguien tiene idea donde le puedo estar escapando. Vi la hoja de datos, consulté a la IA, etc. Pero no doy con la tecla.
Creia que era un error del CCS, pero los registros afectados que se ven en el archivo ensamblador, están ok.
Saludos !
-
La solución está en colocar la siguiente línea de configuración:
#FUSES RSTOSC_HFINTRC_32MHZ // Oscilador interno con PLL a 32Mhz.
#FUSES NOCLKOUT
#FUSES NOEXTOSC // No utilizamos el oscilador externo.
-
Hace tiempo que no programo en CCS, pero si sigues teniendo problemas puedes añadir la siguiente línea y ver que pasa:
setup_oscillator(osc_8mhz | OSC_PLL_ON);
-
Ahi lo pude solucionar dogflu66, era un problema de fusibles mal configurados. Saludos !