📄 em78p372n_tcc.c
字号:
//*****************************************************************************
//范例:利用TCC溢位中断来实现在P5.1送出脉冲波形,可以接一个LED检测
//*****************************************************************************
//MCU:EM78P372N
//Oscillator:IRC 4MHz
//Clock:2
//WDT: Disable
//编译软件:eUIDE version 1.02.09.07
#include "EM78P372N.H" //EM78P372N的头文件
#define DISI() _asm{disi}
#define WDTC() _asm{wdtc}
#define NOP() _asm{nop}
#define ENI() _asm{eni}
#define SLEP() _asm{slep}
#define uchar unsigned char
unsigned int COUNTER;
extern int IntVecIdx; //occupied 0x10:rpage 0
void main()
{
WDTC();
DISI();
COUNTER=0;
SCR=0X7F; //选择4MHz
P5CR=0X02; //P51设为输出
P51=1;
_asm
{
mov a,@0x0c
contw
}
TCC=6; //tcc赋初值
IMR=1; //使能TCC中断
ISR2=0;
ENI(); //开总中断
while(1);
}
void _intcall ALLInt(void) @ int
{
switch(IntVecIdx)
{
case 0xA:
if (TCIF==1) //TCC中断吗?
{
ISR2&=0XFE; //清TCC中断标志
TCC=6; //TCC赋初值
COUNTER++;
if (COUNTER==250)
{
COUNTER=0;
PORT5^=0X02;//P51输出取反
}
}
break;
}
}
void _intcall TCC_l(void) @ 0x09:low_int 2
{
_asm{MOV A,0x2};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -