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);
}

原文地址:https://www.cnblogs.com/luxiaolai/p/3411297.html