Autor Tema: Memoria rom insuficiente - Out of ROM, A segment or the program is too large  (Leído 14322 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Memoria rom insuficiente - Out of ROM, A segment or the program is too large
« Respuesta #30 en: 16 de Enero de 2013, 12:19:36 »
No, solo los que uses, por ejemplo, en las opciones de reloj tienes:

Citar
LP,XT,HS,RC,EC,EC_IO,H4,RC_IO

Si vas a usar un cristal de hasta 4 Mhz, solo activas XT (aunque si es 4 Mhz, tambien funciona con HS), pero aqui hay una opción mas que no tenias antes, puedes activar H4 y se multiplicara por 4 la velocidad del cristal externo, o sea que podrás trabajar internamente a 16 Mhz con un cristal de 4 Mhz.

Esa opcion en la otra linea no existe.

Repito, leete muy bien las diferencias, o estarás preguntando cientos de cosas por aqui pronto... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Arsenic

  • PIC10
  • *
  • Mensajes: 47
Re: Memoria rom insuficiente - Out of ROM, A segment or the program is too large
« Respuesta #31 en: 23 de Abril de 2015, 23:45:48 »
Hola! Estoy teniendo un problema similar con la siguiente función:

Código: [Seleccionar]
void main()

{

   set_tris_a(0b11001000);
   setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_2304MS);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   lcd_init();
   enable_interrupts(INT_TIMER1);
   disable_interrupts (GLOBAL);
   setup_oscillator(OSC_4MHZ);

   printf(lcd_putc,"Temporizador v.1\n");
   lcd_putc("Farias Ezequiel");
   LCD_DefineCaracter ();
   CargaConfiguracion();
   delay_ms(500);
   pitido(50);
   CARA_INFERIOR=0;
   CARA_SUPERIOR=0;
   menu();
   MuestraEstado();

   while(1){

//   pitido(50);
      restart_wdt();
      if (!SW_ARRIBA) {// sube en el menú
         pitido(20); // antirrebotes
         while (!SW_ARRIBA); // esperamos que suelte tecla
         if (EstadoEntradaTiempo)
            ConfiguraTiempo(ARRIBA);
          else {
            OpcionMenu--;
            if (!OpcionMenu)
               OpcionMenu=(3+Estado+EnPausa);
            if (OpcionMenu==3)
               HayMensaje=MUESTRACARAS;
              else
               HayMensaje=0;
            TicksMensaje=0;
            menu();
            MuestraEstado();
          }
      }

      if (!SW_ABAJO) {// baja en el menú
         pitido(20); // antirrebotes
         while (!SW_ABAJO); // esperamos que suelte tecla
         if (EstadoEntradaTiempo)
            ConfiguraTiempo(ABAJO);
          else {
            OpcionMenu++;
            if (OpcionMenu==(4+Estado+EnPausa))
               OpcionMenu=1;
            if (OpcionMenu==3)
               HayMensaje=MUESTRACARAS;
              else
               HayMensaje=0;
            TicksMensaje=0;
            menu();
            MuestraEstado();
          }
      }
      if (!SW_INTRO) {// acepta opción
         pitido(20); // antirrebotes
         while (!SW_INTRO); // esperamos que suelte tecla
         if (EstadoEntradaTiempo) {
            ConfiguraTiempo(INTRO);
           } else {
            HayMensaje=0;
            TicksMensaje=0;
            EjecutaOpcion();
           }
         menu();
         MuestraEstado();
      }

   }
}

La salida produce el siguiente mensaje:

"""Error 71 'programa.c' Line *****: Out of ROM. A segment of the program is too large. EjecutaOpcion