定时器中断产生方波源程序

合集下载

stm8笔记2-定时3更新中断+pwm输出(IDE为IAR)

stm8笔记2-定时3更新中断+pwm输出(IDE为IAR)

stm8笔记2-定时3更新中断+pwm输出(IDE为IAR)⼀:IAR编译器中断函数说明下⾯说⼀下在IAR下,在IAR下必须要添加iostm8s105s6.h⽂件,在⽂件的最后有如下内容:/*-------------------------------------------------------------------------* Interrupt vector numbers*-----------------------------------------------------------------------*/#define AWU_vector 0x03#define SPI_TXE_vector 0x0C#define SPI_RXNE_vector 0x0C#define SPI_WKUP_vector 0x0C#define SPI_CRCERR_vector 0x0C#define SPI_OVR_vector 0x0C#define SPI_MODF_vector 0x0C#define TIM1_OVR_UIF_vector 0x0D#define TIM1_CAPCOM_BIF_vector 0x0D#define TIM1_CAPCOM_TIF_vector 0x0D#define TIM1_CAPCOM_CC1IF_vector 0x0E#define TIM1_CAPCOM_CC2IF_vector 0x0E#define TIM1_CAPCOM_CC3IF_vector 0x0E#define TIM1_CAPCOM_CC4IF_vector 0x0E#define TIM1_CAPCOM_COMIF_vector 0x0E#define TIM2_OVR_UIF_vector 0x0F#define TIM2_CAPCOM_CC1IF_vector 0x10#define TIM2_CAPCOM_TIF_vector 0x10#define TIM2_CAPCOM_CC2IF_vector 0x10#define TIM2_CAPCOM_CC3IF_vector 0x10#define UART1_T_TXE_vector 0x13#define UART1_T_TC_vector 0x13#define UART1_R_OR_vector 0x14#define UART1_R_RXNE_vector 0x14#define UART1_R_IDLE_vector 0x14#define UART1_R_PE_vector 0x14#define UART1_R_LBDF_vector 0x14#define I2C_ADD10_vector 0x15#define I2C_ADDR_vector 0x15#define I2C_OVR_vector 0x15#define I2C_STOPF_vector 0x15#define I2C_BTF_vector 0x15#define I2C_WUFH_vector 0x15#define I2C_RXNE_vector 0x15#define I2C_TXE_vector 0x15#define I2C_BERR_vector 0x15#define I2C_ARLO_vector 0x15#define I2C_AF_vector 0x15#define I2C_SB_vector 0x15#define ADC1_AWS0_vector 0x18#define ADC1_AWS1_vector 0x18#define ADC1_AWS2_vector 0x18#define ADC1_AWS3_vector 0x18#define ADC1_AWS4_vector 0x18#define ADC1_AWS5_vector 0x18#define ADC1_AWS6_vector 0x18#define ADC1_EOC_vector 0x18#define ADC1_AWS8_vector 0x18#define ADC1_AWS9_vector 0x18#define ADC1_AWDG_vector 0x18#define ADC1_AWS7_vector 0x18#define TIM4_OVR_UIF_vector 0x19#define FLASH_EOP_vector 0x1A#define FLASH_WR_PG_DIS_vector 0x1A对照中断向量表,如果⽤到中断,必须⾃⼰写中断,⽐如TIM3定时器中断#pragma vector=TIM3_OVR_UIF_vector__interrupt void TIM3_UPD_OVF_IRQHandler (void){TIM3_SR = 0X00;//清除中断标志}⽤关键字#pragma vector=指出本中断处理函数指向的中断号,⽤关键字__interrupt作为函数的前缀,表⽰这是中断处理函数。

定时器计数器应用设计产生周期为2ms的方波

定时器计数器应用设计产生周期为2ms的方波

参考中断程序
void T0_int(void) interrupt 1 using 0 { P1_0=! P1_0; TH0=(65536 −1000) /256; TL0=(65536 −1000) %256; }
主程序流程
开始
Tቤተ መጻሕፍቲ ባይዱ初始化
中断初始化
循环等待
中断程序流程
开始
装入初始计数值
P1.0取反
结束
参考主程序
#include<reg51.h> sbit P1_0=P1^0; void main(void) { TMOD=0x01; /*设置定时器T0为方式2计数*/ TH0=(65536 −1000) /256; /*给T0装入初值*/ TL0=(65536 −1000) %256; /*给T0装入初值*/ ET0=1; /* 允许T0中断 */ EA=1; /* 总中断开 */ TR0=1 /* 接通T0 计数 * / do{ }while (1); /* 无限循环等待 * / }
设置定时器t0为方式2计数给t0装入初值给t0装入初值允许t0中断总中断开接通t0计数无限循环等待参考中断程序voidt0intvoidinterrupt1using0p10
4.4 定时器/计数器应用设计 P1.0上产生周期为2ms的方波
设计要求:
系统时钟为12MHz,编程实现从P1.0引脚上输出一 个周期为2ms的方波,如图所示:
• 基本思路:要在P1.0上产生周期为2ms的方波,定 时器应产生1ms的周期性的定时,定时对P1.0求反 。选择定时器T0,方式1定时,采用中断方式, GATE不起作用。
计算T0的初值计算:设T0的初值为X,则 (216 − X) 1 10−6 = 110−3 65536−X =1000 则初值为:65536−1000=64536, TH0=(65536 −1000) /256 , TL0=(65536 −1000) %256。

用定时器触发dma写gpio方式实现方波输出

用定时器触发dma写gpio方式实现方波输出

用定时器触发DMA写GPIO方式实现方波输出一、方波输出的原理和需求1. 方波输出是一种常见的信号输出方式,通常用于数字电路中的时钟信号或者数字通信中的数字信号传输。

2. 实现方波输出的方式有多种,其中一种常见的实现方式是使用定时器和DMA控制器来驱动GPIO输出口,通过定时器触发DMA传输实现方波输出的周期性变化。

二、定时器的设置1. 需要配置定时器的工作模式和计数周期,以确定方波输出的频率和占空比。

2. 定时器的工作模式通常设置为定时器模式或者脉冲模式,根据具体的需求来确定。

3. 计数周期的设定决定了方波输出的频率,通过修改定时器的重装载值或者分频系数来实现。

三、DMA的配置1. 接下来,需要配置DMA的工作模式和数据传输方向,将定时器的计数值传输到GPIO输出口。

2. 需要注意的是,要选择合适的DMA通道和传输模式,以确保数据的正常传输和输出。

四、GPIO的配置1. 需要配置GPIO输出口的工作模式和驱动能力,确保能够输出所需的方波信号。

2. 根据方波信号的特性,选择合适的GPIO输出模式和极性,以满足实际应用的需求。

五、定时器触发DMA传输1. 当定时器计数值达到设定的数值时,触发DMA传输,将计数值传输到GPIO输出口。

2. DMA控制器根据配置的传输方向和数据长度,将定时器的计数值传输到GPIO输出口,实现方波输出。

六、方波输出的优化1. 在实际应用中,需要根据具体的需求优化方波输出的参数,如频率、占空比、上升沿和下降沿的时间等。

2. 可以通过调整定时器和DMA的配置参数,以及GPIO输出口的驱动能力来实现方波输出的精确控制。

七、总结1. 通过定时器触发DMA写GPIO方式,可以实现方波输出,满足数字电路和数字通信中对方波信号的需求。

2. 在实际应用中,需要根据具体的需求和硬件条件来选择合适的方波输出方式,并进行参数优化和调整,以满足实际应用的要求。

为了深入探讨定时器触发DMA写GPIO方式实现方波输出的原理和实现过程,我们可以从以下几个方面进行详细的扩展:一、方波输出的原理和应用场景1. 方波输出作为一种常见的数字信号输出方式,在数字电路和通信系统中有着广泛的应用,比如用作时钟信号、数字通信信号、数模转换等。

定时器中断程序设计实验

定时器中断程序设计实验

定时器中断程序设计实验定时器中断程序设计实验简介定时器中断是嵌入式系统中的常见应用之一,通过配置定时器的相关寄存器,可以定时产生中断信号,从而实现定时功能。

本文档将介绍定时器中断的基本概念和在实验中如何设计和实现定时器中断程序。

一、定时器中断的概念定时器中断是通过硬件定时器产生的中断信号,可以用于在嵌入式系统中实现定时功能。

定时器中断的原理是定时器内部的计数器自动递增,并在计数到一个特定值时产生中断信号。

通过配置定时器的相关寄存器,可以设置定时器的计数范围、计数速度和中断触发条件等参数。

二、定时器中断的实验设计步骤以下是一个基本的定时器中断程序设计实验的步骤:1. 确定定时器的类型和工作模式根据实际需求和硬件平台的支持情况,选择合适的定时器类型和工作模式。

常见的定时器类型包括定时器/计数器和看门狗定时器,常见的工作模式包括定时模式和计数模式。

2. 配置定时器的相关寄存器根据定时器的类型和工作模式,配置定时器的相关寄存器。

主要包括计数范围、计数速度和中断触发条件等参数的设置。

3. 初始化中断控制器如果使用的嵌入式系统具有中断控制器,需要初始化中断控制器,并使能相应的中断通道。

4. 编写中断服务程序通过注册中断处理函数,并在其中编写中断服务程序。

中断服务程序主要包括对中断标志位的清除、中断处理、中断函数返回等操作。

5. 启动定时器配置完成后,启动定时器开始计数。

定时器将根据配置的参数自动递增,并在计数到设定的特定值时产生中断信号。

6. 整合定时器中断功能到主程序在主程序中,可以使用定时器中断提供的功能来实现定时任务。

可以通过在中断服务程序中设置标志位,并在主循环中检测该标志位来执行相应的任务。

三、实验注意事项在设计和实现定时器中断程序时,需要注意以下事项:1. 根据实际需求进行定时器的配置,确保定时器的参数设置合理。

2. 在中断服务程序中应尽量减少对全局变量和共享资源的访问,以避免竞态条件和数据不一致等问题的发生。

STM32单片机定时器调试之方波输出

STM32单片机定时器调试之方波输出

STM32单片机定时器调试之方波输出今天试着让STM32的定时器输出50%占空比信号,按照例程写了一下方波初始化函数,例程用的是STM32自带库函数,由于嫌麻烦,我又自己写了一个简单的,采用定时器1进行输出。

结果一上来,没反应,修改了很多参数,还是没反应,然后将开发板例程写进芯片后,有反应,仔细越多数据手册,没有问题,纠结一上午,中午吃饭。

吃完饭后,下午又开始试验,还是别人程序有反映,自己程序,没反应。

再看了看,开发板程序使用的是TIM3,而我使用的是TIM1,于是又把我的程序将TIM1换成TIM3,点击调试运行,有反应。

不会是高级定时器只能干高级的任务吧,像输出方波这么简单的低级任务他不惜的干?郁闷了半天。

后来通过在网上查找,这个程序以下为源代码,CC1进行比较输出,模式为翻转电平.程序运行后,CC中断可以进去,PA.11的指示灯能闪,但PA.08的指示一直为低电平,请教一下程序哪里错了??? void TIM1_CC_Init(void){NVIC_InitTypeDef NVIC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;/* 使能定时器 TIM1_CC 中断 */NVIC_InitStructure.NVIC_IRQChannel =TIM1_CC_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPrior ity = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);/* 配置 PA.11 为推挽输出 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);GPIOA->;BSRR = GPIO_Pin_11; // 将PA.08配置为高电平/* 配置 PA.08 为复用推挽输出 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);/* 预分频自动重载寄存器 */TIM1->;ARR= 0x2FFF;/* PSC 预分频器:计数频率 = CK_PSC /(PSC + 1) */ TIM1->;PSC= 0xFF;/* CCR1 捕获比较值寄存器 */TIM1->;CCR1 = 0xFFF;/* 循环计数器的寄存器(控制更新事件) */TIM1->;RCR= 0x00;// 每次更新/* 捕获/比较模式寄存器 */TIM1->;CCMR1 = 0x30;// CC1为输出,CCR1立即生效,输出翻转./* 捕获/比较使能寄存器 */TIM1->;CCER = 0x03;// 开启CC1输出,反向输出/* 中断使能寄存器 */TIM1->;DIER = 0x02;// 使能 CC1 中断/* 控制寄存器1 */TIM1->;CR1= 0x01;// 使能计数器(向上计数)}/************************************************ ***************************************** 函数名称: TIM1_CC_IRQHandler** 功能描述: CC 中断** 参数: None** 返回值: None************************************************* ***************************************/void TIM1_CC_IRQHandler(void){static uint32 counter = 0;TIM1->;SR &= ~2; // 清除中断标志(不做判断提高效率)if(counter){counter = 0;GPIOA->;BSRR = GPIO_Pin_11;}else{counter = 1;GPIOA->;BRR = GPIO_Pin_11;}}最后找到问题,没有打开主输出.../* 打断和死区控制器 */TIM1->;BDTR = 0x8000; // 主输出使能(MOE)加这句就可以了.得知,高级定时器就是高级定时器,由于加入了刹车和死区,所以想输出波形,必须要比普通定时器多一句&ldquo;TIM1->;BDTR = 0x8000;&rdquo; 开启主输出使能,通道输出和这个必须同时开启,若出现刹车信号,则一次将4路输出全部关闭。

单片机定时器中断程序实例

单片机定时器中断程序实例

单片机定时器中断程序实例引言:单片机定时器中断是指在单片机运行过程中,通过设置定时器并设置相应的中断服务程序,实现在指定时间间隔内自动触发中断,从而完成特定的任务。

本文将通过一个实例来介绍单片机定时器中断的应用。

一、背景介绍单片机的定时器中断广泛应用于各种实时控制系统中,如温度控制、电机控制等。

通过定时器中断,可以在指定的时间间隔内执行特定的任务,提高系统的实时性和稳定性。

二、实例描述假设我们需要设计一个温度控制系统,要求每隔一秒钟读取一次温度传感器的数值,并根据温度数值控制加热器的开关状态。

我们可以通过单片机的定时器中断来实现这个功能。

1. 初始化定时器我们需要初始化单片机的定时器。

具体步骤如下:(1)设置定时器的工作模式为定时器模式;(2)设置定时器的预分频系数,以确定定时器的计数频率;(3)设置定时器的计数初值,以确定定时器的定时时间;(4)开启定时器中断允许。

2. 编写中断服务程序接下来,我们需要编写定时器中断的服务程序。

当定时器溢出时,单片机会自动跳转到中断服务程序的入口处执行相应的任务。

具体步骤如下:(1)保存当前的现场,包括寄存器、标志位等;(2)读取温度传感器的数值;(3)根据温度数值控制加热器的开关状态;(4)恢复之前保存的现场;(5)退出中断服务程序。

3. 主程序框架我们需要编写主程序框架,以完成整个温度控制系统的功能。

具体步骤如下:(1)初始化单片机的端口和定时器;(2)开启总中断允许;(3)进入主循环;(4)等待定时器中断的发生;(5)执行定时器中断的服务程序。

三、总结通过单片机的定时器中断,我们可以实现在指定时间间隔内自动执行特定的任务,提高系统的实时性和稳定性。

本文通过一个温度控制系统的实例,介绍了单片机定时器中断的应用方法。

希望读者通过阅读本文,对单片机定时器中断有更深入的了解,并能运用到实际项目中。

单片机产生可调方波(c语言)

单片机产生可调方波(c语言)

用单片机产生频率可调的方波信号。

输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。

要求用“增加”、“减小”2个按钮改变方波给定频率,按钮每按下一次,给定频率改变的步进步长为1Hz,当按钮持续按下的时间超过2秒后,给定频率以10 次/秒的速度连续增加(减少),输出方波的频率要求在数码管上显示。

用输出方波控制一个发光二极管的显示,用示波器观察方波波形。

开机默认输出频率为5Hz。

3.5.1模块1:系统设计(1)分析任务要求,写出系统整体设计思路任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出I/O管脚的状态取反。

由于频率范围最高为200Hz,即每个周期为5ms(占空比1:1,即高电平2.5ms,低电平2.5 ms),因此,定时器可以工作在8位自动装载的工作模式。

涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描显示等。

问题的难点在按键连续按下超过2S的计时问题,如何实现计时功能。

系统的整体思路:主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。

中断程序负责方波的产生、按键连续按下超过2S后频率值以10Hz/s递增(递减)。

(2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图采用MCS51系列单片机At89S51作为主控制器,外围电路器件包括数码管驱动、独立式键盘、方波脉冲输出以及发光二极管的显示等。

数码管驱动采用2个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244作为数码管的驱动。

在74HC244的7段码输出线上串联100欧姆电阻起限流作用。

独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。

发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。

图3-14 方波信号发生器的硬件电路原理图(3)分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图软件任务要求包括按键扫描、定时器的控制、按键连续按下的判断和计时、数码管的动态显示。

单片机实验四-定时器和中断的应用实验(1)

单片机实验四-定时器和中断的应用实验(1)

实验四定时器和中断应用实验一、实验目的1. 学习定时器的编程和使用2.学习中断的使用方法二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。

三、实验内容及步骤1.使用单片机最小应用系统。

用八位数据线连接单片机P1口JD2F与八位逻辑电平显示模块JD3I,打开相关模块电源。

2.用串行数据通信线连接计算机与仿真器,把仿真器插到单片机最小系统的锁紧插座中,请注意仿真器的方向:缺口朝上。

打开单片机最小应用系统的电源开关。

3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,编制源程序,进行编译,直到编译无误。

4.进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5.打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。

实验1用导线分别把单片机最小应用系统的 P1.1接拨断开关K0,P1.0接发光二极管L0。

采用定时中断处理方式,通过拨断开关K0控制二个不同占空比的脉冲信号输出,即当K0=0时,从P1.0输出周期为1秒占空比为50%的方波、当K0=1时,从P1.0输出周期为1秒占空比为20%的方波。

实验2用导线将实验箱上的单次脉冲源的负脉冲信号接到单片机最小应用系统的INT0( P3.2)输入引脚,模拟中断请求脉冲输入信号,P1.0接发光二极管L0。

程序响应中断请求执行中断服务程序使发光二极管L0闪烁3次,这样每输入一个中断请求脉冲(即按下单次脉冲源按钮),使发光二极管L0闪烁3次要求同学自己思考:修改实验2程序,每输入一个中断请求脉冲(即按下单次脉冲源按钮),使P1口连接的8个发光二极管从右到左(L0到L7)循环点亮一次(每个发光二极管闪烁3次)。

再按下单次脉冲源按钮,重复上述过程。

实验3用导线将拨断开关K0接到单片机最小应用系统的INT1( P3.3)输入引脚,并将开关K0拨在低电平位置K0=0。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

①fangbo.asm。

利用定时器Timer0在XF脚产生周期1s的的方波
.title "fangbo.asm"
.mmregs
.def CodeStart ;程序入口
.def TINT0_ISR ;Timer0中断服务程序
STACK .usect "STACK",10H ;分配堆栈空间
;设定定时器0控制寄存器的内容
K_TCR_SOFT .set 0B<<11 ;TCR第11位soft=0
K_TCR_FREE .set 0B<<10 ;TCR第10位free=0
K_TCR_PSC .set 0B<<6 ;TCR第9-6位,可跟TDDR一样,也可不设自动加载
K_TCR_TRB .set 1B<<5 ;TCR第5位TRB=1此位置1,PSC会自动加载的
K_TCR_TSS .set 0B<<4 ;TCR第4位TSS=0
K_TCR_TDDR .set 1001B<<0 ;TCR第3-0位TDDR=1001B
K_TCR .set K_TCR_SOFT|K_TCR_FREE|K_TCR_PSC|K_TCR_TRB|K_TCR_TSS|K_TCR_TDDR
K_TCR_STOP .set 1B<<4 ;TSS=1时计数器停止
.data
DATA_DP:
XF_Flag: .word 1 ;当前XF的输出电平标志,如果XF_Flag=1,则XF=1 ;================================================
;主程序:
;================================================
.text
CodeStart:
STM #STACK+10H,SP ;设堆栈指针SP
LD #DATA_DP,DP ;设数据地址DP
STM #XF_Flag,AR2 ;AR指向XF标志
;改变中断向量表位置
K_IPTR .set 0080h ;指向0080H,默认是FF80
LDM PMST,A
AND #7FH,A ;保留低7位,清掉高位
OR #K_IPTR,A ;
STLM A,PMST
;初始化定时器0
;f=100Mhz,定时最大是:10ns*2^4*2^16=10ms,
;要输出1s的方波,可定时5ms,再在中断程序中加个100计数器
;Tt=10ns*(1+9)*(1+49999)=5ms
;f=50M, Tt=20ns*(1+9)*(1+49999)=10ms
;再加50计数器
CounterSet .set 49 ;定义计数次数
PERIOD .set 49999 ;定义计数周期
.asg AR1,Counter ;AR1做计数指针,重新命名以便识别
STM #CounterSet,Counter ;设计数器初值
STM K_TCR_STOP,TCR ;停止计数器0
; STM #PERIOD,TIM ;可设成跟PRD一样,也可不设自动加载STM #PERIOD,PRD ;设定计数周期
STM #K_TCR,TCR ;开始Timer0
stm #0008h,IMR ;允许Timer0中断
STM #0008h,IFR ;清除挂起的中断
RSBX INTM ;开中断
end: nop
B end
;================================================
;Timer0中断服务程序:TIN0_ISR
;================================================
TINT0_ISR:
PSHM ST0 ;本中断程序影响TC,位于ST0中
BANZ Next,*Counter- ;判断不等于0时跳转,然后计数器减1
STM #CounterSet,Counter ;恢复初值
;判断当前XF状态并作电平变化
BITF *AR2,#1 ;IF XF_Flag=1 then TC=1 else TC=0
BC ResetXF,TC ;IF TC=1 then XF=0 else XF=1 setXF:
SSBX XF ;置XF为高电平
ST #1,*AR2 ;相应修改标志
B Next
ResetXF:
RSBX XF ;;置XF为高电平
ST #0,*AR2 ;相应修改标志
Next:
POPM ST0
RETE
.end
②fangbo.cmd
-e CodeStart /* This is the entry point reset vector */
-m map.map
-o fangbo.out
MEMORY {
PAGE 0:
VECT: org=080h len=80h
PARAM: org=100h len=0F00h
PAGE 1:
DARAM: org=1000h len=1000h
}
SECTIONS {
.text :> PARAM PAGE 0
.vectors :>VECT PAGE 0
STACK :> DARAM PAGE1
.data :> DARAM PAGE 1
}
③vectors.asm。

省略部分基本上同实验三。

.sect ".vectors" ;开始命名段.vecotrs
.global CodeStart ;引用程序入口的全局符号定义
.global TINT0_ISR

TINT: B TINT0_ISR ;Timer0中断
NOP
NOP
BRINT0: RETE ;McBSP #0 receive interrupt
┇。

相关文档
最新文档