⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at91_timer.c

📁 基于ARM7微控制器AT91X40开发板的定时器程序
💻 C
字号:
/* * at91_timer.c *  * author: Kexin (kexin28@126.com) Tel:+8613714451195 * date:   2007-11-22	 *///#include "at91.h"#include "at91_timer.h"#include "at91_aic.h"extern unsigned long svr[32];int at91_del_timer(unsigned char TimerNum){  register volatile struct at91_timers* tt=(struct at91_timers*)(AT91_TC_BASE);  register volatile struct at91_timer_channel* tc = &tt->chans[TimerNum].ch;  if(TimerNum>2)  	 return -1;   at91_mask_irq(TimerNum+4);  tc->ccr= 0x02;  tc->rc = 0;  at91_release_irq(TimerNum+4);      return 1; 	}int at91_set_timer(at91_timer_param param){  register volatile struct at91_timers* tt=(struct at91_timers*)(AT91_TC_BASE);  register volatile struct at91_timer_channel* tc = &tt->chans[param.TimerNum].ch;  unsigned long v;  if(param.TimerNum>2 || param.CycleTime==0 || param.irq_svr==0)  	 return -1;   	   at91_request_irq(param.TimerNum+4,param.irq_svr);  tt->bcr=0;  switch(param.TimerNum)  {  	case 0:   		v=tt->bmr&0xfc;  		v|=0x01;  		break;  	case 1:   		v=tt->bmr&0xf3;  		v|=0x04;  		break;  	case 2:   		v=tt->bmr&0xcf;  		v|=0x10;  		break;   	default:  		return -1; 		  		  }  tt->bmr=v;  tc->ccr=2;  tc->cmr=3 | (1<<14);  tc->idr=~0ul;  tc->rc=param.CycleTime;  tc->ier=1<<4;  tc->ccr=0x05;  at91_mask_ack_irq(param.TimerNum+4);  at91_unmask_irq(param.TimerNum+4);   return 1; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -