?? 196kxc.cod
字號:
$$ifn$ int_mask1.0
command = getcommand_slp() /* receive command from master */
$$end$
while(1);
}
##80C196NT ICU#
##80C196NQ ICU#
##80C196KT ICU#
##80C196KQ ICU#
##80C196KR ICU#
##80C196JR ICU#
##80C196JT ICU#
##80C196JQ ICU#
$$ifp$ 80C196KT || 80C196KQ || 80C196KR || 80C196JR || 80C196JQ || 80C196JT
#pragma model(KR)
$$end$
$$ifp$ 80C196NT || 80C196NQ
#pragma model(NT)
$$end$
#include <80c196kr.h>
#define EPAX_INTERRUPT 0x00
#define EXTINT_INTERRUPT 0x06
#define EPA4_INT 0x8000
#define EPA5_INT 0x4000
#define EPA6_INT 0x2000
#define EPA7_INT 0x1000
#define EPA8_INT 0x0800
#define EPA9_INT 0x0400
#define EPA0_OVR 0x0200
#define EPA1_OVR 0x0100
#define EPA2_OVR 0x0080
#define EPA3_OVR 0x0040
#define EPA4_OVR 0x0020
#define EPA5_OVR 0x0010
#define EPA6_OVR 0x0008
#define EPA7_OVR 0x0004
#define EPA8_OVR 0x0002
#define EPA9_OVR 0x0001
#define COMP_CH0 0x08
#define COMP_CH1 0x04
#define TIMER1_OVR 0x02
#define TIMER2_OVR 0x01
#define EPAX_EPA4_INT 0x14
#define EPAX_EPA5_INT 0x13
#define EPAX_EPA6_INT 0x12
#define EPAX_EPA7_INT 0x11
#define EPAX_EPA8_INT 0x10
#define EPAX_EPA9_INT 0x0F
#define EPAX_EPA0_OVR 0x0E
#define EPAX_EPA1_OVR 0x0D
#define EPAX_EPA2_OVR 0x0C
#define EPAX_EPA3_OVR 0x0B
#define EPAX_EPA4_OVR 0x0A
#define EPAX_EPA5_OVR 0x09
#define EPAX_EPA6_OVR 0x08
#define EPAX_EPA7_OVR 0x07
#define EPAX_EPA8_OVR 0x06
#define EPAX_EPA9_OVR 0x05
#define EPAX_COMP_CH0 0x04
#define EPAX_COMP_CH1 0x03
#define EPAX_TIMER1_OVR 0x02
#define EPAX_TIMER2_OVR 0x01
void init_special_interrupts(void)
{
$$if$ int_mask.0
int_mask |= EPAX_INTERRUPT;
$$end$
$$if$ int_mask.1-7
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
int_mask |= 0x$$INT_MASK$;
*/
$$end$
$$if$ int_mask1.6
setbit(int_mask1, EXTINT_INTERRUPT);
$$end$
$$if$ int_mask1.0-5
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
int_mask1 |= 0x$$INT_MASK1$;
*/
$$end$
$$if$ EPA_MASK
epa_mask = /* enabled interrupts */
$$if$ EPA_MASK.0
EPA9_OVR |
$$end$
$$if$ EPA_MASK.1
EPA8_OVR |
$$end$
$$if$ EPA_MASK.2
EPA7_OVR |
$$end$
$$if$ EPA_MASK.3
EPA6_OVR |
$$end$
$$if$ EPA_MASK.4
EPA5_OVR |
$$end$
$$if$ EPA_MASK.5
EPA4_OVR |
$$end$
$$if$ EPA_MASK.6
EPA3_OVR |
$$end$
$$if$ EPA_MASK.7
EPA2_OVR |
$$end$
$$if$ EPA_MASK.8
EPA1_OVR |
$$end$
$$if$ EPA_MASK.9
EPA0_OVR |
$$end$
$$if$ EPA_MASK.10
EPA9_INT |
$$end$
$$if$ EPA_MASK.11
EPA8_INT |
$$end$
$$if$ EPA_MASK.12
EPA7_INT |
$$end$
$$if$ EPA_MASK.13
EPA6_INT |
$$end$
$$if$ EPA_MASK.14
EPA5_INT |
$$end$
$$if$ EPA_MASK.15
EPA4_INT |
$$end$
0; /* Needed to end the conditional code */
$$end$
$$if$ EPA_MASK1
epa_mask1 = /* Unmask to enabled interrupts */
$$if$ EPA_MASK1.3
COMP_CH0 |
$$end$
$$if$ EPA_MASK1.2
COMP_CH1 |
$$end$
$$if$ EPA_MASK1.1
TIMER1_OVR |
$$end$
$$if$ EPA_MASK1.0
TIMER2_OVR |
$$end$
0; /* Needed to end the conditional code */
$$end$
}
$$if$ int_mask.0
#pragma interrupt(epax_isr = EPAX_INTERRUPT)
void epax_isr(void)
{
unsigned int time_value;
unsigned int more_interrupts;
more_interrupts = 1;
while(more_interrupts)
{
switch(epaipv)
{
case 0:
more_interrupts = 0;
break;
case EPAX_EPA4_INT:
/* Insert code for this event here */
$$ifn$ EPA4_CON.6
time_value = epa4_time; /* must read to prevent overrun */
$$end$
$$if$ EPA4_CON.6 &! EPA4_CON.0 && EPA4_CON.3
epa4_time += 0x$$TIMER_OFFSET4$;
$$end$
$$if$ EPA4_CON.6 &! EPA4_CON.3
/* Since not re-enabled, no more events will occur unless
epa_control and epa_time are re-written. */
$$end$
break;
case EPAX_EPA5_INT:
/* Insert code for this event here */
$$ifn$ EPA5_CON.6
time_value = epa5_time; /* must read to prevent overrun */
$$end$
$$if$ EPA5_CON.6 &! EPA5_CON.0 && EPA5_CON.3
epa5_time += 0x$$TIMER_OFFSET5$;
$$end$
$$if$ EPA5_CON.6 &! EPA5_CON.3
/* Since not re-enabled, no more events will occur unless
epa_control and epa_time are re-written. */
$$end$
break;
case EPAX_EPA6_INT:
/* Insert code for this event here */
$$ifn$ EPA6_CON.6
time_value = epa6_time; /* must read to prevent overrun */
$$end$
$$if$ EPA6_CON.6 &! EPA6_CON.0 && EPA6_CON.3
epa6_time += 0x$$TIMER_OFFSET6$;
$$end$
$$if$ EPA6_CON.6 &! EPA6_CON.3
/* Since not re-enabled, no more events will occur unless
epa_control and epa_time are re-written. */
$$end$
break;
case EPAX_EPA7_INT:
/* Insert code for this event here */
$$ifn$ EPA7_CON.6
time_value = epa7_time; /* must read to prevent overrun */
$$end$
$$if$ EPA7_CON.6 &! EPA7_CON.0 && EPA7_CON.3
epa7_time += 0x$$TIMER_OFFSET7$;
$$end$
$$if$ EPA7_CON.6 &! EPA7_CON.3
/* Since not re-enabled, no more events will occur unless
epa_control and epa_time are re-written. */
$$end$
break;
case EPAX_EPA8_INT:
/* Insert code for this event here */
$$ifn$ EPA8_CON.6
time_value = epa8_time; /* must read to prevent overrun */
$$end$
$$if$ EPA8_CON.6 &! EPA8_CON.0 && EPA8_CON.3
epa8_time += 0x$$TIMER_OFFSET8$;
$$end$
$$if$ EPA8_CON.6 &! EPA8_CON.3
/* Since not re-enabled, no more events will occur unless
epa_control and epa_time are re-written. */
$$end$
break;
case EPAX_EPA9_INT:
/* Insert code for this event here */
$$ifn$ EPA9_CON.6
time_value = epa9_time; /* must read to prevent overrun */
$$end$
$$if$ EPA9_CON.6 &! EPA9_CON.0 && EPA9_CON.3
epa9_time += 0x$$TIMER_OFFSET9$;
$$end$
$$if$ EPA9_CON.6 &! EPA9_CON.3
/* Since not re-enabled, no more events will occur unless
epa_control and epa_time are re-written. */
$$end$
break;
case EPAX_EPA0_OVR:
/* Insert code for this event here */
break;
case EPAX_EPA1_OVR:
/* Insert code for this event here */
break;
case EPAX_EPA2_OVR:
/* Insert code for this event here */
break;
case EPAX_EPA3_OVR:
/* Insert code for this event here */
break;
case EPAX_EPA4_OVR:
/* Insert code for this event here */
break;
case EPAX_EPA5_OVR:
/* Insert code for this event here */
break;
case EPAX_EPA6_OVR:
/* Insert code for this event here */
break;
case EPAX_EPA7_OVR:
/* Insert code for this event here */
break;
case EPAX_EPA8_OVR:
/* Insert code for this event here */
break;
case EPAX_EPA9_OVR:
/* Insert code for this event here */
break;
case EPAX_COMP_CH0:
/* Insert code for this event here */
break;
case EPAX_COMP_CH1:
/* Insert code for this event here */
break;
case EPAX_TIMER1_OVR:
/* Insert code for this event here */
break;
case EPAX_TIMER2_OVR:
/* Insert code for this event here */
break;
default:
break;
}
}
}
$$end$
$$if$ INT_MASK.1
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(epa3_isr_template = 1)
void epa3_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK.2
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(epa2_isr_template = 2)
void epa2_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK.3
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(epa1_isr_template = 3)
void epa1_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK.4
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(epa0_isr_template = 4)
void epa0_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK.5
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(ATOD_isr_template = 5)
void ATOD_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK.6
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(OBE_isr_template = 6)
void OBE_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK.7
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(IBF_isr_template = 7)
void IBF_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.0
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(CBF_isr_template = 24)
void CBF_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.1
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(SSIO0_isr_template = 25)
void SSIO0_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.2
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(SSIO1_isr_template = 26)
void SSIO1_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.3
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(TI_isr_template = 27)
void TI_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.4
/* Enabling of the other direct Interrupts should be generated
using the peripheral editor. The following can be used for
template.
#pragma interrupt(RI_isr_template = 28)
void RI_isr_template(void)
{
******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.6
/*
#pragma interrupt(EXTINT_isr_template = 30)
void EXTINT_isr_template(void)
{
******** user code *******
}
*/
$$end$
/* The
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -