ARM作业

发布 2020-04-15 21:46:28 阅读 5054

程序:#include ""

#define key2 0x00004000 //p0.14控制led2con

#define led2con 0x00000800 //p0.11低电平时点亮led2con

#define time0 fpclk/10 //初始状态下一周期低电平时间0.1s

#define time1 fpclk //方波周期2s

/函数声明。

void __irq irq_timer0(void);

void __irq irq_eint1(void);

/全局变量定义。

uint32 i=0key2每按下一次,此变量加0.1s

int main(void)

//管脚功能选择初始化化。

pinsel0=0x20000000; /p0.14设置为eint1

iodir = led2conp0.11设置为输出。

ioclr = led2conp0.11输出清零,led2con点亮。

//中断选择初始化化。

vicintenable=0x00008010; /中断使能timer0和eint1

vicintselect=0x00000000; /设置中断类型为irq

vicvectcntl0=0x24timer0分配为通道0

vicvectaddr0=(uint32)irq_timer0;

vicvectcntl1=0x2feint1分配为通道1

vicvectaddr1=(int)irq_eint1;

//外部中断输入初始化化。

extmode =0x00000002; /设置外部中断的输入极性为下降沿。

extpolar=0x00000000;

extint = 0x02清除eint1的中断标志。

//定时器初始化。

t0tc=0定时器清零。

t0pr=0不分频。

t0mcr=0x19mr0匹配时产生中断,mr1匹配时定时器清零并产生中断。

t0mr0=time0mr0定时初值0.1s

t0mr1=time1mr1定时初值2s

t0ir = 0x03清除mr0、mr1的中断标志。

t0tcr=0x01启动定时器。

while(1等待timer0中断或eint1中断。

return(0);

名称: irq_timer0()

功能: 定时器timer0服务函数,取反led2con

void __irq irq_timer0(void)

if((iopin&led2con)==0读取ledcon2状态并取反。

elsewhile((t0ir&0x01)!=0等待tomr0中断信号恢复为高电平。

while((t0ir&0x02)!=0等待tomr1中断信号恢复为高电平。

vicvectaddr=0x00向量中断结束*/

名称: irq_eint1()

功能: 外部中断eint1服务函数,当低电平<1.9s时,加0.1s;超过1.9s后复位(低电平0.1s)

void __irq irq_eint1(void)

if(t0mr0<(time1-time0))

elsewhile((extint&0x02)!=0等待外部中断信号恢复为高电平。

vicvectaddr=0x00; /返回。

电路图:流程图:

主函数流程图。

定时器中断服务函数流程图。

ARM作业

arm实验。专业年级 10级通信工程 学号。姓名。指导教师 郑汉麟。2013年6月8日。华中科技大学文华学院信息学部。一 编译前工作 1.先新建新空间。2.新建程序窗口new file,程序写完后,将文件保存为文件,然后点击源文件菜单,增加文件,将。s文件打开。3.编译 project settin...

ARM作业

院系 班级 姓名 学号 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了 i o 设备。概括的讲 一块芯片就成了一台计算机。它的体积小 质量轻 便宜 为学习 应用和开发提供了便利条件。同时,学习使用单片...

ARM作业

程序 file 功能 键盘输入。当检测到有按键输入时,对发光二极管进行取反控制。使用i o口输入方式对按键进行扫描。include define key1 0x00010000 p0.16控制led1con define key2 0x00004000 p0.14控制led2con define l...