裸机定时器中断控制LED灯程序设计实验报告

发布时间 : 星期日 文章裸机定时器中断控制LED灯程序设计实验报告更新完毕开始阅读

#include \#include \#include \#include \#include \

void Clk0_Enable(int clock_sel); void Clk1_Enable(int clock_sel); void Clk0_Disable(void); void Clk1_Disable(void); volatile U32 downloadAddress;

void (*restart)(void)=(void (*)(void))0x0; volatile unsigned char *downPt; volatile U32 downloadFileSize; volatile U16 checkSum; volatile unsigned int err=0; volatile U32 totalDmaCount;

volatile int isUsbdSetConfiguration; #define GPB5_out (1<<(5*2)) //led1 #define GPB6_out (1<<(6*2)) //led2 #define GPB7_out (1<<(7*2)) //led3 #define GPB8_out (1<<(8*2)) //led4 #define led1_on ~(1<<5) #define led2_on ~(1<<6) #define led3_on ~(1<<7) #define led4_on ~(1<<8) #define led1_off (1<<5) #define led2_off (1<<6) #define led3_off (1<<7) #define led4_off (1<<8) void __irq Timer0_handle();

extern void MMU_Init(); void Main(void) {

//U32 mpll_val=0; ChangeMPllValue(92,4,1); ChangeClockDivider(12,12); //rCLKDIVN&=~0x7; //rCLKDIVN|= 0x3;

MMU_Init();

rGPBCON=GPB5_out|GPB6_out|GPB7_out|GPB8_out; //设置GPB5-8为输出 rGPBDAT=led1_off|led2_off|led3_off|led4_off; //led灭 //配置中断寄存器

rSRCPND = rSRCPND | (0x1<<10); rINTPND = rINTPND | (0x1<<10); rINTMSK = ~(0x1<<10);

//打开定时器0中断

rTCFG0|=0xf9;//预定标值=249

rTCFG1|=0x01;//定时器0进行4分频,f=50M/(249+1)/4=50KHZ rTCNTB0=25000;//定时时间=25000*(1/f)=0.5s rTCON|=(1<<1); // 手动更新

rTCON=0x09; // 自动加载,清“手动更新”位,启动定时器0 pISR_TIMER0 =(U32)Timer0_handle;

//装入定时器0中断函数地址 pISR_TIMER0=(U32)Timer0_handle; while(1); }

void __irq Timer0_handle() //中断服务函数 {

static unsigned int count; count++;

ClearPending(BIT_TIMER0);//清SRCPND,INTPND的定时器0中断标志位 if(count%4==1) //第一次进入中断,led1亮,其他灭

}

{ }

if(count%4==2) //第二次进入中断,led2亮,其他灭 { }

if(count%4==3) //第三次进入中断,led3亮,其他灭 { }

if(count%4==0) //第四次进入中断,led4亮,其他灭 { }

rGPBDAT=led1_off|led2_off|led3_off; rGPBDAT=led1_off|led2_off|led4_off; rGPBDAT=led1_off|led3_off|led4_off; rGPBDAT=led2_off|led3_off|led4_off;

八.参考文献

[1]嵌入式系统设计与开发实例详解----------基于ARM的应用.北京航空航天大学出版社 [2]嵌入式系统原理及接口技术.清华大学出版社 [3]单片机原理与应用设计.电子工业出版社

联系合同范文客服:xxxxx#qq.com(#替换为@)