📄 main.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 /* P0.17控制LED1 */
# define LED2 1 << 18
# define LED3 1 << 19
# define LED4 1 << 20
uint32 TIME_TICK=0;
void DelayMS(uint32 uiDly)
{
T3TCR = 0x01;
while(uiDly != 0){
if(TIME_TICK == 1){
uiDly-=1;
TIME_TICK=0;
}
}
T3TCR=0x02;
TIME_TICK=0;
}
void Timer3Init(void)
{
T3TCR = 0x02; /* 定时器0复位 */
T3PR = 0; /* 不设时钟分频 */
T3MCR = 0x03; /* 匹配后复位TC,并产生中断 */
T3MR0 = Fpclk/1000 ; /* 设置0.5秒匹配值 */
T3IR = 0x01; /* 清除中断标志 */
// T0TCR = 0x01; /* 启动定时器0 */
}
void __irq Timer3ISR (void)
{
TIME_TICK=1;
T3IR = 0x01; /* 清除中断标志 */
VICVectAddr = 0x00; /* 中断向量结束 */
}
int main (void)
{// add user source code
PINSEL1 = PINSEL1 & (~(0xff << 2)); /* 将P0.17~20设置为GPIO */
IO0DIR =( IO0DIR & (~(0x0f<<17))) | LED1 | LED2 | LED3 | LED4; /* 设置LED控制口为输出 */
IO0SET =( IO0SET & (~(0x0f<<17))) | LED1 | LED2 | LED3 | LED4; /* LED1熄灭 */
Timer3Init(); /* 定时器2初始化 */
IRQEnable ();
VICIntSelect = VICIntSelect & (~(1 << 27)); /* 定时器2分配为IRQ中断 */
VICVectCntl1 = 0x20 | 27; /* 定时器2分配为向量IRQ通道0 */
VICVectAddr1 = (uint32) Timer3ISR; /* 分配中断服务程序地址 */
VICIntEnable =VICIntEnable| (1 << 27);// | (1 << 4)| (1 << 0x06) ;
while(1){
DelayMS(2000);
IO0SET = ( IO0SET & (~(0x0f<<17))) | LED1 | LED2 | LED3 | LED4; /* LED1熄灭 */
DelayMS(1000);
IO0CLR = ( IO0CLR & (~(0x0f<<17))) | LED1 | LED2 | LED3 | LED4;
}
return 0;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -