ARM按键控制蜂鸣器方法汇总程序代码

ARM按键控制蜂鸣器方法汇总程序代码

ID:37908113

大小:30.50 KB

页数:4页

时间:2019-06-02

ARM按键控制蜂鸣器方法汇总程序代码_第1页
ARM按键控制蜂鸣器方法汇总程序代码_第2页
ARM按键控制蜂鸣器方法汇总程序代码_第3页
ARM按键控制蜂鸣器方法汇总程序代码_第4页
资源描述:

《ARM按键控制蜂鸣器方法汇总程序代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、定时器法:#include"config.h"#defineBeepcon1<<0#defineKEY1<<8uint8N=1;void__irqIRQ_Time0(void){IOSET=Beepcon;if(N!=0){IOCLR=Beepcon;}T0IR=0x01;//清除中断标志VICVectAddr=0x00;//通知VIC中断处理结束}voidTime0Init(void){T0PR=99;//设置定时器0分频为100分频,得110592HzT0MCR=0x03;//匹配通道0匹配中断并复位T0TCT0MR0=11059/N;//比较

2、值(1S定时值)T0TCR=0x03;//启动并复位T0TCT0TCR=0x01;/*设置定时器0中断IRQ*/VICIntSelect=0x00;//所有中断通道设置为IRQ中断VICVectCntl0=0x24;//定时器0中断通道分配最高优先级(向量控制器0)VICVectAddr0=(uint32)IRQ_Time0;//设置中断服务程序地址向量VICIntEnable=0x00000010;//使能定时器0中断}intmain(void){PINSEL0=0x00000000;//设置管脚连接GPIOIODIR=Beepcon;//设置P

3、0.0~P0.7为输出,其他为输入Time0Init();//初始化定时器0及使能中断while(1)//等待定时器0中断或定时器1匹配输出{if((IOPIN&KEY)==0){if(N<11)N++;elseN=1;}}return(0);}查询法:#include"config.h"#defineBeepcon1<<0#defineKEY1<<8uint8N=1;voidDelayNS(uint32dly){uint32i;for(;dly>0;dly--)for(i=0;i<5000;i++);}intmain(void){PINSEL0=

4、0x00000000;IODIR=Beepcon;while(1){if((IOPIN&KEY)==0){if(N<11)N++;elseN=1;}if(N!=0){IOCLR=Beepcon;DelayNS(1000*N);IOSET=Beepcon;DelayNS(1000*N);}}return(0);}不按不响法:#include"config.h"#defineBeepcon1<<0#defineKEY1<<8uint8N=1;voidDelayNS(uint32dly){uint32i;for(;dly>0;dly--)for(i=0;

5、i<5000;i++);}intmain(void){PINSEL0=0x00000000;IODIR=Beepcon;while(1){if((IOPIN&KEY)==0){if(N<11)N++;elseN=1;}if(N!=0){IOCLR=Beepcon;DelayNS(1000*N);IOSET=Beepcon;DelayNS(1000*N);}}return(0);}中断法:#include"config.h"#defineBeepcon1<<0#defineKEY1<<16uint8N=1;voidDelayNS(uint32dly)

6、{uint32i;for(;dly>0;dly--)for(i=0;i<5000;i++);}voidEINT0_ISR(void){if(N!=1){IOCLR=Beepcon;DelayNS(100*N);IOSET=Beepcon;DelayNS(100*N);}else{IOCLR=Beepcon;DelayNS(100);IOSET=Beepcon;DelayNS(100);}T0IR=0x01;VICVectAddr0=0x00;}intmain(void){PINSEL0=0x00000000;IODIR=Beepcon;PINSEL

7、1=0x00000001;EXTMODE=0x00000001;EXTPOLAR=0x000000e;VICIntSelect=~1<<14;VICVectCntl0=0x00101110;VICVectAddr0=(uint32)EINT0_ISR;VICIntEnable=1<<14;while(1){if((IOPIN&KEY)==0){if(N>11)N=1;elseN++;}}return(0);}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。