嵌入式系统设计实验四.doc

嵌入式系统设计实验四.doc

ID:59234556

大小:1.38 MB

页数:7页

时间:2020-10-30

嵌入式系统设计实验四.doc_第1页
嵌入式系统设计实验四.doc_第2页
嵌入式系统设计实验四.doc_第3页
嵌入式系统设计实验四.doc_第4页
嵌入式系统设计实验四.doc_第5页
资源描述:

《嵌入式系统设计实验四.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、专业:测控技术与仪器姓名:颜睿学号:日期:2018.3.28地点:创客空间实验报告课程名称:嵌入式系统设计指导老师:马永昌成绩:________________实验名称:实验四C语言裸机编程实验类型:验证型同组学生姓名:__孙凡原_______一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得一、实验目的和要求n初步了解C运行库n初步了解gccarm常用编译选项n了解ARM中断处理过程二、实验内容和原理n编写C裸机代码实现跑马灯,通过控制Timer中断实现n通

2、过控制uart串口进行调试打印三、主要仪器设备树莓派、PC机四、操作方法和实验步骤1通过定时器产生中断,控制gpio,实现跑马灯2控制uart控制器,产生调试打印。五、实验数据记录和处理1.主程序arm.c注释//包含头文件#include#include#include#include"rpi-aux.h"#include"rpi-armtimer.h"#include"rpi-gpio.h"#include"rpi-interrupts.h"#include"rpi-systimer.h"#include"

3、rpi-led.h"/**Mainfunction-we'llneverreturnfromhere*/voidkernel_main(unsignedintr0,unsignedintr1,unsignedintatags){/*InitLed*/LED_INIT();//初始化LED,将LED的GPIO设置为输出//设置流水灯GPIO5,6,13为输出RPI_SetGpioOutput(RPI_GPIO5);RPI_SetGpioOutput(RPI_GPIO6);RPI_SetGpioOutput(RPI_GPIO13);/*Enablethetimerinte

4、rruptIRQ*///使能定时器中断RPI_GetIrqController()->Enable_Basic_IRQs=RPI_BASIC_ARM_TIMER_IRQ;/*Setupthesystemtimerinterrupt*//*Timerfrequency=Clk/256*0x400*/RPI_GetArmTimer()->Load=0x400;//设置计时器的装载值/*SetuptheARMTimer*///配置计时器的控制寄存器RPI_GetArmTimer()->Control=RPI_ARMTIMER_CTRL_23BIT

5、//设置计时器为1:23-

6、bitcounterRPI_ARMTIMER_CTRL_ENABLE

7、//使能定时器RPI_ARMTIMER_CTRL_INT_ENABLE

8、//使能定时器中断RPI_ARMTIMER_CTRL_PRESCALE_256;//定时器分频/*Enableinterrupts!*/_enable_interrupts();//使能中断/*InitialisetheUART*/RPI_AuxMiniUartInit(,8);//初始化串口,波特率,数据以8位传送/*PrinttotheUARTusingthestandardlibcfunctions*///打印串口prin

9、tf("Embededsystemexperimentr");printf("InitialiseUARTconsolewithstandardlibcr");while(1){printf("SerialLoopOutputr");RPI_WaitMicroSeconds(50000);//延时等中断}}2.流水灯代码void__attribute__((interrupt("IRQ")))interrupt_vector(void)//定时器中断处理函数中实现流水灯{staticintlit=0;staticintticks=0;static

10、intseconds=0;staticintflag=0;//用作流水灯标志位,每进入一次中断改变一次值staticintlight_0;//定义三个灯staticintlight_1;staticintlight_2;RPI_GetArmTimer()->IRQClear=1;ticks++;if(ticks>1){ticks=0;seconds++;if(seconds>59){seconds=0;calculate_frame_count=1;}}/*FliptheLED*/if(lit){LED_OFF();lit=0;}else{LED_O

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

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

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