E
elrayes
Guest
Hola a todos
Sólo quiero usar timer0 en PIC18F4550 y realmente estoy cansada de leer y tratar, al lado soy un programador muy mal, a fin de tratar de ayudarme en este código, estoy usando el compilador MPLAB C18, este código se utiliza para luz algunos LED's en el puerto D, cuando el temporizador expira, solía ISR para aplicar todo esto, el código de construcción es muy fina y descargadas en el objetivo, pero el MCU no está funcionando:
# include <p18f4550.h>
# include <stdlib.h>
# include <timers.h>
# pragma interrumpir high_isr
# low_isr pragma interruptlow
init_int (void)
(
/ / Configuración de las interrupciones
INTCON = 0xA0;
INTCON2 = 0x04;
)
# pragma high_vector code = 0x08
interrupt_at_high_vector (void)
(
Ir _endasm _asm high_isr
)
# pragma code
# pragma low_vector code = 0x18
interrupt_at_low_vector (void)
(
Ir _endasm _asm low_isr
)
# pragma code# pragma interrumpir high_isr
high_isr (void)
(
if (INTCONbits.TMR0IF == 1)
(
INTCONbits.TMR0IF = 0;
PORTD = 0x0f;
)
)
# low_isr pragma interruptlow
low_isr (void)
(
)
# pragma code
int x = 0x0000;
void main (void)
(
TRISD = 0x00;
LATD = 0x00;
OpenTimer0 (TIMER_INT_ON & T0_16BIT & T0_SOURCE_INT & T0_PS_1_8);
WriteTimer0 (0x0000);
while (1)
(
high_isr ();
)
)
Espero que alguien pueda solucionar esto.
gracias
Sólo quiero usar timer0 en PIC18F4550 y realmente estoy cansada de leer y tratar, al lado soy un programador muy mal, a fin de tratar de ayudarme en este código, estoy usando el compilador MPLAB C18, este código se utiliza para luz algunos LED's en el puerto D, cuando el temporizador expira, solía ISR para aplicar todo esto, el código de construcción es muy fina y descargadas en el objetivo, pero el MCU no está funcionando:
# include <p18f4550.h>
# include <stdlib.h>
# include <timers.h>
# pragma interrumpir high_isr
# low_isr pragma interruptlow
init_int (void)
(
/ / Configuración de las interrupciones
INTCON = 0xA0;
INTCON2 = 0x04;
)
# pragma high_vector code = 0x08
interrupt_at_high_vector (void)
(
Ir _endasm _asm high_isr
)
# pragma code
# pragma low_vector code = 0x18
interrupt_at_low_vector (void)
(
Ir _endasm _asm low_isr
)
# pragma code# pragma interrumpir high_isr
high_isr (void)
(
if (INTCONbits.TMR0IF == 1)
(
INTCONbits.TMR0IF = 0;
PORTD = 0x0f;
)
)
# low_isr pragma interruptlow
low_isr (void)
(
)
# pragma code
int x = 0x0000;
void main (void)
(
TRISD = 0x00;
LATD = 0x00;
OpenTimer0 (TIMER_INT_ON & T0_16BIT & T0_SOURCE_INT & T0_PS_1_8);
WriteTimer0 (0x0000);
while (1)
(
high_isr ();
)
)
Espero que alguien pueda solucionar esto.
gracias