📄 eint.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#define LED1 1 << 17
uint8 KeyCount = 0;
/*
void DelayNS(uint32 tim)
{
uint32 i;
while(tim--)
for(tim = 0;tim < 50000;tim++);
}
*/
void __irq EINT0_ISR(void)
{
KeyCount++;
if(KeyCount % 3 == 0)
IO0CLR = LED1; //为3的整数倍亮
else
IO0SET = LED1; //否则灭
while(IO0PIN & (1 << 16) == 0);
EXTINT = 0x01; //清中断标志位
VICVectAddr = 0x00; //中断结束
}
int main (void)
{// add user source code
PINSEL1 = (PINSEL1 & (~0x03)) | 0x01; //P0.16为EXINT0端口
PINSEL1 = PINSEL1 & (~(0x03 << 2)); //P0.17为IO端口
IO0DIR = LED1; //P0.17设为输出
IO0SET = LED1;
EXTMODE = 0x00; //外部中断方式为电平方式
EXTPOLAR = 0x00; //低电平
VICIntSelect = 0x00;
VICVectCntl0 = 0x20 | 14;
VICVectAddr0 = (uint32)EINT0_ISR;
EXTINT = 0x01; //清中断0标志位
VICIntEnable = (1 << 14);
IRQEnable();
while(1);
return 0;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -