W
wcgan
Guest
Hej alle,
Jeg har prøvet koden nedenfor for at generere en afbryder efter timer1 overflow.men det ikke virker.
Kan nogen hjælpe med at rette min kode?eller give mig et simpelt eksempel på timeren interrrupt?
tak.
Code:
# include <timers.h>
# include <p18cxxx.h>void timer1_isr (void);void vigtigste ()
(
TRISD = 0x00; / / RD4-7 for LCD, RD3 for SR_DATdA, RD2 for output til CPLD, RD0 for nRESET output
LATD = 0xFF;
PORTD = 0xFF; / / RESET altid høj ved magten op
PORTEbits.RDPU = 0;OpenTimer1 (TIMER_INT_ON & T1_8BIT_RW & T1_SOURCE_INT & T1_PS_1_8 & T1_OSC1EN_OFF & T1_SYNC_EXT_OFF);
WriteTimer1 (0x00FF);RCONbits.IPEN = 1;
RCONbits.SBOREN = 0;INTCON = 0b10000000;
IPR1bits.TMR1IP = 1;
PIE1bits.TMR1IE = 1;mens (1)
(
)
)void high_ISR (void)
(
_asm goto timer1_isr _endasm
)# pragma afbryder timer1_isrvoid timer1_isr (void)
(
PIR1bits.TMR1IF = 0;
WriteTimer1 (0x00FF);PORTDbits.RD7 = ~ PORTDbits.RD7;
)
Jeg har prøvet koden nedenfor for at generere en afbryder efter timer1 overflow.men det ikke virker.
Kan nogen hjælpe med at rette min kode?eller give mig et simpelt eksempel på timeren interrrupt?
tak.
Code:
# include <timers.h>
# include <p18cxxx.h>void timer1_isr (void);void vigtigste ()
(
TRISD = 0x00; / / RD4-7 for LCD, RD3 for SR_DATdA, RD2 for output til CPLD, RD0 for nRESET output
LATD = 0xFF;
PORTD = 0xFF; / / RESET altid høj ved magten op
PORTEbits.RDPU = 0;OpenTimer1 (TIMER_INT_ON & T1_8BIT_RW & T1_SOURCE_INT & T1_PS_1_8 & T1_OSC1EN_OFF & T1_SYNC_EXT_OFF);
WriteTimer1 (0x00FF);RCONbits.IPEN = 1;
RCONbits.SBOREN = 0;INTCON = 0b10000000;
IPR1bits.TMR1IP = 1;
PIE1bits.TMR1IE = 1;mens (1)
(
)
)void high_ISR (void)
(
_asm goto timer1_isr _endasm
)# pragma afbryder timer1_isrvoid timer1_isr (void)
(
PIR1bits.TMR1IF = 0;
WriteTimer1 (0x00FF);PORTDbits.RD7 = ~ PORTDbits.RD7;
)