28335timer
/*****************************************************************************
Copyright: 2014,Tkai
File name: main.c
Description:28335定时器0中断测试
Author:
Version: v1.0
Date: 2014.02.23
History: 无
*****************************************************************************/
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
Uint16 ledon=0x00;
/*************************************************
Function: gpio_init()
Description: IO的初始化
Calls: NO
Called By: main()
Table Accessed: 无
Table Updated: 无
Input: void
Output: NULL
Return: void
Others: NO
*************************************************/
void gpio_init(void)
{
EALLOW;
GpioCtrlRegs.GPAMUX1.all=0x0000;//IO做为GPIO
GpioCtrlRegs.GPADIR.all=0xffff;//GPIO输出使能
EDIS;
}
/*************************************************
Function: timer_isr()
Description: 定时器中断服务程序
Calls: NO
Called By: timer_init()
Table Accessed: 无
Table Updated: 无
Input: void
Output: NULL
Return: void
Others: NO
*************************************************/
interrupt void timer_isr(void)
{
ledon+=10;
GpioDataRegs.GPADAT.all=ledon;//IO数据位变化
PieCtrlRegs.PIEACK.all=0xffff;//开所有中断
}
/*************************************************
Function: timer_init()
Description: 定时器中断的初始化
Calls: NO
Called By: main()
Table Accessed: 无
Table Updated: 无
Input: void
Output: NULL
Return: void
Others: NO
*************************************************/
void timer_init(void)
{
InitSysCtrl();
InitPieVectTable();
InitPieCtrl();
InitCpuTimers();
EALLOW;
PieVectTable.TINT0=&timer_isr; //中断服务程序指定
XIntruptRegs.XINT1CR.bit.ENABLE=1; //INT1打开
ConfigCpuTimer(&CpuTimer0,150,100); //配置定时器0
/*指针指向定时器0,第二个参数主频MHZ,第三个参数定时值us单位*/
EDIS;
DINT;
IER=0x0000;
IFR=0x0000;
PieCtrlRegs.PIEIER1.bit.INTx7=1; //INTx7 外部中断号
PieCtrlRegs.PIECTRL.bit.ENPIE=1; //打开中断
IER=M_INT1; //打开中断
EINT;
StartCpuTimer0();//启动定时器0
}
/*************************************************
Function: main()
Description: 主函数
Calls: gpio_init(),timer_init()
Called By: NO
Table Accessed: 无
Table Updated: 无
Input: void
Output: NULL
Return: void
Others: NO
*************************************************/
void main(void)
{
gpio_init();
timer_init();
GpioDataRegs.GPADAT.all=0x0000;
while(1);
}