嵌入式开发为什么要用c语言,c语言嵌入式编程

2023-05-06 21:31:42 阅读:112214 作者: 2108

计时器基本功能实验(计时器中断)

1 .实验内容

使用计时器0实现1秒的计时器,控制为按蜂鸣器。 通过中断方式实现定时控制。

注: EasyARM2131实验板的系统时钟默认为11.0592MHz; 符号常数Fpclk=11059200在系统中定义;

2 .实验步骤

启动ADS 1.2并使用ARM Executable Image for lpc2131项目模板创建项目

TimeOut_C。

在user组的main.c中写主程序代码。

在主程序中启用IRQEnable ) )启用IRQ中断。

在DebugInExram中生成目标并编译连接工序。

将LPC2131测试板上的Beep跳线短接至P0.7。

选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。

以全速运行程序后,蜂鸣器按1秒响、1秒停止、然后又响1秒……的顺序循环。

3 .实验参考程序

程序列表Error! notextofspecifiedstyleindocument.1计时器实验参考程序

#include 'config.h '

#define BEEP 1 7/* P0.7控制BEEP、低电平蜂鸣器*/

/* * * * * * * * * * * * * * * * * *

*函数名称: IRQ_Timer0 ()

*函数功能:计时器0中断服务程序,取反LED9控制端口。

*入口参数:无

*出口参数:无

* * * * * * * * * * * * * * * * *

*/

void_IRQIRQ_timeR0(void ) ) )。

{

if ((io0set beep )==0) ) )。

IO0SET=BEEP; BEEP */

else

IO0CLR=BEEP;

T0IR=0x01; /*清除中断标志*

VICVectAddr=0x00;/*通知vic中断处理结束*

}

/*

* * * * * * * * * * * * * * * * *

*函数名称: main () )

*函数功能:使用计时器实现1秒钟的计时器,控制LED9的闪烁。 中断方式。

*调试说明:必须将跳线JP11连接到BEEP。

* * * * * * * * * * * * * * * * *

*/

输入主(语音) )。

{

PINSEL1=0x00000000; /*针连接GPIO */的设定*

IO0DIR=BEEP; BEEP控制端口输出设置*

IRQ启用(; /* IRQ中断使能*

/*计时器0初始化*

T0TC=0; /*计时器为0 */

T0PR=0; /*时钟不分频*

T0MCR=0x03; 设置T0MR0匹配后,复位T0TC,产生中断标志*

T0MR0=Fpclk;/*在1秒钟的计时器系统中,Fpclk=11059200 */

T0TCR=0x01; /*开始计时器*

/*定时器0设置中断IRQ

VICIntSelect=0x00; /*将所有中断通道设置为IRQ中断*

VICVectCntl0=0x20 |0x04; /*定时器0设定中断通道分配的最高优先级*

vicvectaddr0=(uint32 ) IRQ_Timer0; /*设置中断服务程序的地址*

VICIntEnable=10x04; /*使能计时器0中断*

wile(1;

返回0;

}

扩大全文

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。

标签: 嵌入式   语言

Copyright © 2022 恩蓝号 Inc. 保留所有权利。 Powered by 恩蓝号

页面耗时0.0205秒, 内存占用107.28 KB, 访问数据库2次