在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 3262|回复: 3

[原创] 定时器中断的程序

[复制链接]
发表于 2006-11-15 12:58:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cjsb37 于 2013-4-29 09:13 编辑

初学DSP,写了个定时器中断的程序,请大家指正
/****************************************
Project:IntLED
Function:IntLED.pjt
Description:light the LED(PF6) each 08s
Author:haiqing
Date:2006.11.14
*****************************************/
#include "LF2407A.h"
#define time 200
int timers = time;
void KickDog ()
{
WDKEY = 0x5555;
WDKEY = 0xAAAA;

}

void system_init ()
{
asm (" SETC INTM ");  //关总中断
asm (" CLRC OVM ");   //正常溢出
asm (" CLRC CNF ");   //B0-->数据空间
asm (" CLRC SXM ");   //无符号扩展
SCSR1 = 0x83FF;    //2xfin,开所有外设
SCSR2 = 0xFF8E;
asm (" CLRC INTM ");  //开总中断

}

void IO_init ()
{
MCRC = 0x0000;    //PE,PF定义为IO口
PFDATDIR = 0xFFFF;   //PA输出高电平
PFDATDIR = PFDATDIR & 0xFF80;//PA输出低电平

}

void interrupt_init ()
{
IFR = 0xFFFF;    //清除中断标志
IMR = 0xFFC2;    //使能INT2
}
void EV_init ()
{
EVAIMRA = 0xF8F0;   //T1周期中断使能
EVAIFRA = 0xFFFF;   //复位EVA中断标志
T1CON = 0x364C;    //连续增计数,X/64,使能定时器
GPTCONA = 0xF830;   //增计数,无事件启动ADC
T1CNT = 0x0000;
T1PR = 0x0752;    //4ms
  
}

void WD_init ()
{
KickDog ();
WDCR = 0xEF;    //禁止WD
}

void server ()
{
if((PFDATDIR & 0x0040) == 0x0040)
  PFDATDIR = PFDATDIR & 0xFFBF;
else
  PFDATDIR = PFDATDIR | 0x0040;
   
}

void c_int2 ()
{
int flag;
flag= EVAIFRA & 0x0080;
EVAIFRA = 0xFFFF;
if(flag != 0x0080)
{
  asm (" CLRC INTM ");
  return;
}
T1CNT = 0x0000;
timers--;
if(timers != 0)
{
  asm (" CLRC INTM ");
  return;
}
server ();
asm (" CLRC INTM ");
timers = time;

}

void nothing ()
{
asm (" CLRC INTM ");
return;
}


/*****************************************
*************  main function  ************
******************************************
Function:main.c
Descritption:main
Author:haiqing
Date:2006.11.15
*****************************************/
void main (void)
{
system_init ();
IO_init ();
interrupt_init ();
EV_init ();
WD_init ();

while(1);
}

[ 本帖最后由 haiqing05 于 2006-11-15 13:00 编辑 ]





发表于 2006-11-29 17:02:33 | 显示全部楼层
看一看
发表于 2006-11-29 17:42:38 | 显示全部楼层
不错了,厉害啊
发表于 2006-11-29 21:21:33 | 显示全部楼层
看一看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 13:34 , Processed in 0.031220 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表