main.c
来自「F2812实现电机控制源程序.rar」· C语言 代码 · 共 93 行
C
93 行
/*********************************************************************
** Module Name: Cputimer0 **
** Author: Cbq **
** Version: 1.0 **
** CreateDate: 2008-05-15 **
** Description: **
** Remark: Huozq **
** Revision History: 2008-11-10 **
**********************************************************************/
/*********************************************************************
** 实验目的:学习DSP内部定时器0的使用 **
** 实验说明:本实验是通过使用DSP内部的定时器0来实现对LED灯的控制 **
** 大家在刚开始学习时最好先把我们所提供的课本上的第一,二, **
** 六章有个了解,然后在来学习.第一二章分别介绍了DSP的基本 **
** 组成,第六章讲了DSP的C语言编程风格 **
** 实验结果:可看到板上8个发光二极管奇数号LED与偶数号LED交替闪烁 **
**********************************************************************/
#include "DSP28_Device.h"
//8个LED灯的地址,由CPLD得知
unsigned int * Led8 = (unsigned int *) 0x4100;
unsigned int LedCount;
Uint16 LedCode[]={0x55,0xAA};
//定时器0中断函数,这里我们是另外写了,大家也可以把他直接放在#include "DSP28_Device.h"中.
interrupt void ISRTimer0(void);
void main(void)
{
/*初始化系统*/
InitSysCtrl();
/*关中断*/
DINT;
IER = 0x0000;
IFR = 0x0000; //清中断
LedCount = 0;
/*初始化PIE*/
InitPieCtrl();
/*初始化PIE中断矢量表*/
InitPieVectTable();
/*初始化定时器0*/
InitCpuTimers();
/*初始化外设*/
InitPeripherals();
/*受EALLOW保护的定时器0中断矢量*/
EALLOW; //允许访问EALLOW保护的寄存器
PieVectTable.TINT0 = &ISRTimer0;//指向中断服务寄存器定时器0的地址
EDIS; //重新EALLOW保护
/*设置CPU,配置定时器0多长时间中断一次,这里的配置可参见课本P61*/
ConfigCpuTimer(&CpuTimer0, 10, 1000000);
CpuTimer0Regs.TCR.bit.TSS = 0; ///开启CPU定时器0
//StartCpuTimer0();
/*开中断,查看中断向量表可知CPU定时器0位于INT1.7,见课本P82*/
IER |= M_INT1;
PieCtrl.PIEIER1.bit.INTx7=1;
EINT; // 开放全局中断,Enable Global interrupt INTM
ERTM; // 开放全局实时中断,Enable Global realtime interrupt DBGM
for(;;);
}
interrupt void ISRTimer0(void)
{
//响应中断寄存器清除,写1清0,进而才能接收下一外围中断
PieCtrl.PIEACK.bit.ACK7=1;
//向CPLD控制的LED灯地址写数据,进而实现对灯的控制
*Led8 = LedCode[LedCount]; LedCount++;
if (LedCount>=2) LedCount=0;
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?