嵌入式系统设计实验四_第1页
嵌入式系统设计实验四_第2页
嵌入式系统设计实验四_第3页
嵌入式系统设计实验四_第4页
嵌入式系统设计实验四_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐嵌入式系统设计实验四试验报告课程名称:嵌入式系统设计指导教师:马永昌成果:________________试验名称:试验四C语言裸机编程试验类型:验证型同组同学姓名:__孙凡原_______

一、试验目的和要求(必填)二、试验内容和原理(必填)

三、主要仪器设备(必填)四、操作办法和试验步骤

五、试验数据记录和处理六、试验结果与分析(必填)

七、研究、心得

一、试验目的和要求

?初步了解C运行库

?初步了解gccarm常用编译选项

?了解ARM中断处理过程

二、试验内容和原理

?编写C裸机代码实现跑马灯,通过控制Timer中断实现

?通过控制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"rpi-led.h"

/**Mainfunction-we'llneverreturnfromhere*/

voidkernel_main(unsignedintr0,unsignedintr1,unsignedintatags)

专业:测控技术与仪器

姓名:颜睿

学号:3130103850

日期:2022.3.28地点:创客空间

LED_INIT();//初始化LED,将LED的GPIO设置为输出

//设置流水灯GPIO5,6,13为输出

RPI_SetGpioOutput(RPI_GPIO5);

RPI_SetGpioOutput(RPI_GPIO6);

RPI_SetGpioOutput(RPI_GPIO13);

/*EnablethetimerinterruptIRQ*/

//使能定时器中断

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|//设置计时器为1:23-bitcounter

RPI_ARMTIMER_CTRL_ENABLE|//使能定时器

RPI_ARMTIMER_CTRL_INT_ENABLE|//使能定时器中断

RPI_ARMTIMER_CTRL_PRESCALE_256;//定时器分频

/*Enableinterrupts!*/

_enable_interrupts();//使能中断

/*InitialisetheUART*/

RPI_AuxMiniUartInit(115200,8);//初始化串口,波特率115200,数据以8位传送

/*PrinttotheUARTusingthestandardlibcfunctions*/

//打印串口

printf("Embededsystemexperiment\r\n");

printf("InitialiseUARTconsolewithstandardlibc\r\n\n");

while(1)

{

printf("SerialLoopOutput\r\n");

RPI_WaitMicroSeconds(50000);//延时等中断

}

}

2.流水灯代码

void__attribute__((interrupt("IRQ")))interrupt_vector(void)//定时器中断处理函数中实现流水灯

staticintticks=0;

staticintseconds=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_ON();

lit=1;

}

if(flag==0)//flag为0,亮灯5,灭6,13

{

light_0=RPI_GPIO5;

light_1=RPI_GPIO6;

light_2=RPI_GPIO13;

flag++;

}

elseif(flag==1)//flag为1,亮灯6,灭5,13

{

light_0=RPI_GPIO6;

light_1=RPI_GPIO5;

light_2=RPI_GPIO13;

flag++;

}

else//flag为2,亮灯13,灭5,6

{

light_0=RPI_GPIO13;

light_1=RPI_GPIO5;

light_2=RPI_GPIO6;

flag=0;

}

RPI_SetGpioValue(light_0,RPI_IO_HI);//light_0设置高电平,点亮灯RPI_SetGpioValue(light_1,RPI_IO_LO);//light_1设置低电平,熄灭灯RPI_SetGpioValue(light_2,RPI_IO_LO);//light_2设置低电平,熄灭灯}

3.编译烧录

将kernel7.img拷贝至sd卡,然后上电树莓派运行观看结果4.硬件接线

六、试验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论