G
garg29
Guest
Здравейте приятели,
В следващите код не са позволили на външни Прекъсване още процесора е да го приеме не мога да разбера защо, моля погледнете: -
Код:/ ** ВКЛЮЧЕНИ ********************************************** ************/
# Включват <p18cxxx.h>
# Включват <stdlib.h># Включват "delay.h".
.
.
.
.
.
.
.
.
.
.
ученик нищожен _startup (свободен); / / Вижте c018i.c в реж. C18 съставител
//------------------------------------------------ ----------------------------
/ / Върховен приоритет прекъсне вектор# Pragma код InterruptVectorHigh = 0x0800
недействителен
InterruptVectorHigh (свободен)
(
_asm
Отидох в InterruptHandlerHigh / / Направо да прекъсне рутинни
_endasm
)//------------------------------------------------ ----------------------------
/ / Върховен приоритет прекъсне рутинни//------------------------------------------------ ----------------------------
/ / Върховен приоритет прекъсне рутинни# Pragma код
# Pragma прекъсне InterruptHandlerHighнедействителен
InterruptHandlerHigh ()
(
ако (INTCONbits.INT0IF)
(
CountPulse ;/ / INTCONbits.PEIE = 1;
/ / INTCONbits.INT0IE = 1;
INTCONbits.INT0IF = 0; / / Ясно прекъсне флаг)
ако (INTCONbits.TMR0IF) / / проверка за препълване TMR0
(/ / INTCONbits.PEIE = 0;TMR0H = 0xD6;
TMR0L = 0x0C;Display7Segment (();INTCONbits.TMR0IF = 0;
/ / INTCONbits.PEIE = 1
)////////////////////////////////////////////////// /////////////.
.
.
.
.
.
.
.
.
.
/ ** ДЕКЛАРАЦИИ ********************************************** ****/
# Pragma коднищожен Майн (свободен)
(грозен INT I;RCONbits.IPEN = 1;CMCON | = 0x07;
ADCON1 | = 0x0F;
CVRCON = 0;
INTCON2 = 0x04;
OSCCONbits.IOFS = 1;
INTCONbits.INT0IE = 0;
INTCONbits.RBIE = 0;
INTCONbits.RBIF = 0;T0CON = 0x08;
TMR0H = 0x3C;
TMR0L = 0xB0;
INTCONbits.TMR0IF = 0;
INTCONbits.TMR0IE = 1;
T0CONbits.TMR0ON = 1;INTCONbits.PEIE = 0;
INTCONbits.GIE = 1;
TRISA = 0x00;
PORTA = 0x00;
Lata = 0x00;TRISB = 0x01;
PORTB = 0x01;
LATB = 0x01;TRISC = 0x00;
PORTC = 0x00;
LATC = 0x00;TRISD = 0x00;
PORTD = 0x00;
LATD = 0x00;TRISE = 0x00;
Портата = 0x00;
LATE = 0x00;CountPulse = 0;а (1)
(DataForDisplay (CountPulse);DelayMs (100) / / Край, докато
) / / Край основни
В следващите код не са позволили на външни Прекъсване още процесора е да го приеме не мога да разбера защо, моля погледнете: -
Код:/ ** ВКЛЮЧЕНИ ********************************************** ************/
# Включват <p18cxxx.h>
# Включват <stdlib.h># Включват "delay.h".
.
.
.
.
.
.
.
.
.
.
ученик нищожен _startup (свободен); / / Вижте c018i.c в реж. C18 съставител
//------------------------------------------------ ----------------------------
/ / Върховен приоритет прекъсне вектор# Pragma код InterruptVectorHigh = 0x0800
недействителен
InterruptVectorHigh (свободен)
(
_asm
Отидох в InterruptHandlerHigh / / Направо да прекъсне рутинни
_endasm
)//------------------------------------------------ ----------------------------
/ / Върховен приоритет прекъсне рутинни//------------------------------------------------ ----------------------------
/ / Върховен приоритет прекъсне рутинни# Pragma код
# Pragma прекъсне InterruptHandlerHighнедействителен
InterruptHandlerHigh ()
(
ако (INTCONbits.INT0IF)
(
CountPulse ;/ / INTCONbits.PEIE = 1;
/ / INTCONbits.INT0IE = 1;
INTCONbits.INT0IF = 0; / / Ясно прекъсне флаг)
ако (INTCONbits.TMR0IF) / / проверка за препълване TMR0
(/ / INTCONbits.PEIE = 0;TMR0H = 0xD6;
TMR0L = 0x0C;Display7Segment (();INTCONbits.TMR0IF = 0;
/ / INTCONbits.PEIE = 1
)////////////////////////////////////////////////// /////////////.
.
.
.
.
.
.
.
.
.
/ ** ДЕКЛАРАЦИИ ********************************************** ****/
# Pragma коднищожен Майн (свободен)
(грозен INT I;RCONbits.IPEN = 1;CMCON | = 0x07;
ADCON1 | = 0x0F;
CVRCON = 0;
INTCON2 = 0x04;
OSCCONbits.IOFS = 1;
INTCONbits.INT0IE = 0;
INTCONbits.RBIE = 0;
INTCONbits.RBIF = 0;T0CON = 0x08;
TMR0H = 0x3C;
TMR0L = 0xB0;
INTCONbits.TMR0IF = 0;
INTCONbits.TMR0IE = 1;
T0CONbits.TMR0ON = 1;INTCONbits.PEIE = 0;
INTCONbits.GIE = 1;
TRISA = 0x00;
PORTA = 0x00;
Lata = 0x00;TRISB = 0x01;
PORTB = 0x01;
LATB = 0x01;TRISC = 0x00;
PORTC = 0x00;
LATC = 0x00;TRISD = 0x00;
PORTD = 0x00;
LATD = 0x00;TRISE = 0x00;
Портата = 0x00;
LATE = 0x00;CountPulse = 0;а (1)
(DataForDisplay (CountPulse);DelayMs (100) / / Край, докато
) / / Край основни