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

📄 timerc1.c

📁 dsp硬件开发 CCS软件定时计数器的运行源程序
💻 C
字号:
//实验箱晶振14.318MHz,不倍频,因为定时时间TINT=时钟周期T*(TDDR+1)(PRD+1)
//TDDR最大值为0Fh,PRD最大值为0FFFFh,所以最大定时时间约为73ms。
//设定时时间为70ms,则计算出TDDR=0Fh,PRD=0xF4B2;


ioport unsigned port802c;	//定义交通灯端口
#define light  port802c		//light表示交通灯端口
ioport unsigned int port8028;//定义发光管端口
#define led port8028		//led表示发光管端口
#define TCR*(volatile unsigned int*)0x26 //定义映射寄存器地址
#define PRD*(volatile unsigned int*)0x25
#define IFR*(volatile unsigned int*)0x01 
#define IMR*(volatile unsigned int*)0x00
#define PMST*(volatile unsigned int*)0x1D
#define SWWSR*(volatile unsigned int*)0x28
#define CLKMD*(int*)0x58

/* 定时器0初始化*/
void	timer0_init(void)
{
	SWWSR=0x0000;	//不插入等待时间
	TCR=0x0010;		//TSS=1,关闭定时器
	PRD=0xF4B2;		//定时常数
	TCR=0x003f;		/*定时常数TDDR=0Fh,TSS=0启动定时器,
					TRB=1,TIM减至0时,自动加载PRD*/
}
/*系统初始化*/
void	 system_init(void)
{
	PMST=0x00e0;   	/*中断向量指向0080单元*/
asm (" ssbx INTM ");//关闭所有可屏蔽中断
	IFR=0x0080;		//清除还没处理完的定时器中断
	IMR=0x000C;		//开放定时器0中断,并开放了INT2中断(暂时没用)
asm (" rsbx INTM ");//开放所有中断 
}

unsigned int i=0;
void main(void)
{
	system_init();		//系统初始化
	timer0_init();		//定时器0初始化,使定时器每70ms中断一次

while(1)
{;
}
} 
/*interrupt serve program*/
void interrupt tint0(void)		//中断服务程序,每次中断到来时控制灯的不同点亮
{
if(i==1)
{
	light=0x99;
	led=0x0f;
	i=0;
}
else
{
	light=0x66;
	led=0xf0;
	i=1;
}
}






⌨️ 快捷键说明

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