📄 timer.c
字号:
/*************************************************************
*Copyright (c) 2005,北京精仪达盛科技有限公司研发部
*All rights reserved
*
*文件名称:timer.c
*文件标示:
*摘 要:本文件内容为tms320lf2407 dsp的内部定时器1使用练习
*
*当前版本:1.0
*作 者:王飞
*完成日期:2005年2月17日
*
*取代版本:
*原作者 :
*完成日期:
*************************************************************/
/************************文件预处理***************************/
#include "exp3_2407.h"
/*************************************************************/
/********************全局变量定义与初始化*********************/
ioport short port8001; //输出端口地址定义
unsigned int num=0;
unsigned int show=0x00AA;
/*************************************************************/
/*******************函数、子程序声明与定义********************/
void sys_ini() //系统初始化子程序
{
/*关总中断*/
asm(" setc INTM");
/*抑制符号位扩展*/
asm(" clrc SXM");
/*累加器中结果正常溢出*/
asm(" clrc OVM");
/*禁止看门狗*/
* WDCR=0x00E8;
/*配置时钟锁相为4倍频CLKOUT=4*10=40M*/
* SCSR1=0x81FE;;
/*清除所有中断标志,"写1清0"*/
* IFR=0xFFFF;
}
void timer1_ini() //定时器1初始化子程序
{
/*使能int2中断*/
* IMR=0x0002;
/*使能T1PINT中断*/
* EVAIMRA=0x0080;
/*清EVA中断标志*/
* EVAIFRA=0xFFFF;
/*约1ms产生一次中断*/
* T1PER=0x01CD;
/*计数器清零*/
* T1CNT=0x0000;
/*连续增计数模式,预分频为64,定时器计时使能,内部时钟,定时器1比较使能*/
* T1CON=0x164C;
/*开总中断*/
asm(" clrc INTM");
}
/*************************************************************/
/*****************中断服务子程序声明与定义********************/
interrupt void nothing() //哑中断子程序
{
return;
}
interrupt void timer1() //定时器1中断子程序
{
/*记中断次数1000次,产生1秒延时*/
if (num==1000)
{
num=0;
/*显示值取反*/
show=~show;
}
else num++;
/*计数器清零*/
* T1CNT=0x0000;
/*清EVA中断标志*/
* EVAIFRA=0xFFFF;
return;
}
/*************************************************************/
/**************************主程序*****************************/
void main(void)
{
sys_ini();
timer1_ini();
for(;;)
{
/*将欲显示值赋予io空间的8000地址*/
port8001=show;
}
}
/***************************结束******************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -