?? 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 + -