Gracias kikelc por tu colaboración.
El TMR0 puede actuar como 8 bits o como 16.
Yo lo quería hacer actuar como 8 bits. Por fin he encontrado la solución:
#include <18F458.h>
//#fuses HS, NOPROTECT, NOWRT, PUT, NOWDT, NOLVP, NOCPD //No funciona PROTEUS
//#use standard_io(B)
#use fast_io(B) //Para que funcione hay que añadir los tris correspondientes
#INT_Timer0
void DesbordeTimer0()
{
output_bit(PIN_B0,!input(PIN_B0)); //Cada 5 impulsos cambia de valor
SET_TIMER0(251);
}
main()
{
output_b(0x00);
set_tris_a(0xFF);
set_tris_b(0x00);
// SETUP_TIMER_0(RTCC_DIV_1|RTCC_EXT_L_TO_H); //TMR0 con 16 bits
// SET_TIMER0(0xFFF8);
SETUP_TIMER_0(RTCC_DIV_1|RTCC_EXT_L_TO_H | RTCC_8_BIT); //TMR0 con 8 bits
SET_TIMER0(251);
ENABLE_INTERRUPTS ( INT_Timer0 );
ENABLE_INTERRUPTS ( GLOBAL );
while(1)
{
restart_wdt();
}
}
En cuanto a lo de la L que preguntabas hace referencia a los márgenes de alimentación del PIC. Por ejemplo ya que estamos con la serie 18:
PIC18LFxx2 --> desde 2V a 5.5V (mayor rango)
PIC18Fxx2 ---> desde 4.2V a 5.5V
PD. En el manual de CCS no viene el preescaler de 1, empieza por el de 2 ... lo podían haber puesto.