DSP控制器原理及应用技术(第2版)-习题答案. 第4章 片内外设模块开发基础_第1页
DSP控制器原理及应用技术(第2版)-习题答案. 第4章 片内外设模块开发基础_第2页
DSP控制器原理及应用技术(第2版)-习题答案. 第4章 片内外设模块开发基础_第3页
DSP控制器原理及应用技术(第2版)-习题答案. 第4章 片内外设模块开发基础_第4页
DSP控制器原理及应用技术(第2版)-习题答案. 第4章 片内外设模块开发基础_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

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

文档简介

4-PAGE7第4章基本外设及其应用开发习题与思考题4.1F28335DSP控制器共有多少GPIO资源,可分为几个多少位的端口进行管理?【答】:F28335DSP控制器共有88个GPIO引脚。可分为个32位的端口进行管理。其寄存器映射至数据存储空间。4.2【答】:每个GPIO引脚最多可复用4种功能。其复用控制由复用控制寄存器寄存器GPxMUX1和GPxMUX2编程。要将某引脚配置为GPIO功能,只需将其复用控制器寄存器中对应2位复用控制位配置为(00)B。4.3若某引脚配置为GPIO,其数据传输方向如何设置?当其作输出时,引脚上的电平由什么寄存器编程?有几种方法向外输出数字量0或1?当其作输入时,从什么寄存器读取输入的数字量?【答】:当引脚配置为GPIO时,数据传输方向由I/O方向控制寄存器(GPxDIR)控制。当引脚作为输出时,引脚上的电平由相应数据寄存器(GPxDAT)中数据位控制。需要引脚向外输出数字量0,可向数据清零寄存器(GPxCLEAR)对应位写1(或直接向GPxDAT对应位写0);需要引脚向外输出数字量1,可向数置位寄存器(GPxSET)对应位写1(或直接向GPxDAT对应位写1)。当引脚作输入时,从数据寄存器(GPxDAT)中读取输入的数字量。4.4GPIO模块的输入量化功能有什么作用?如何对输入进行量化?【答】:输入量化功能可以规定输入信号的最小脉冲宽度,以滤除引脚上的噪声。输入量化功能由GPxQSEL1/2寄存器控制,选择是是否加限定或选择限定采样周期;若加限定,可进一步通过GPxCTRL寄存器设置采样周期;只有脉冲宽度大于限定时间的脉冲才视为有效。4.5外部中断源选择寄存器和低功耗模式唤醒源选择寄存器的作用是什么?【答】:外部中断源选择寄存器用于为外部中断选择一个GPIO引脚作为其中断源。低功耗模式唤醒源选择寄存器用于规定哪些GPIO事件能把DSP控制器从低功耗模式中唤醒。4.6试编写初始化程序段,将GPIO0和GPIO16设置为GPIO引脚,并作为输出,其中GPIO0输出低电平,GPIO16输出高电平。【答】:GpioCtrlRegs.GPAMUX1.bit.GPIO0=0x0;//GPIO0作为GPIO引脚GpioCtrlRegs.GPAMUX2.bit.GPIO16=0x0;//GPIO16作为GPIO引脚GpioCtrlRegs.GPADIR.bit.GPIO0=0x0;//GPIO0作为输出GpioCtrlRegs.GPADIR.bit.GPIO16=0x0;//GPIO16作为输出GpioDataRegs.GPACLEAR.bit.GPIO0=0x1;//GPIO0输出低电平GpioDataRegs.GPASET.bit.GPIO16=0x1;//GPIO0输出高电平4.7DSP控制器的中断管理分为哪三个层次,各层分别起什么作用?【答】:DSP控制器的中断管理可分为三个层次:外设级、PIE级和CPU内核级。外设级中断管理:负责具体外设中断源的允许与禁止;PIE级中断管理:负责对外设级中断分组并按照优先级管理;CPU内核级中断管理:负责处理直接向CPU申请的中断请求。4.8CPU级中断的可屏蔽中断有哪些?如何允许或禁止某中断?【答】:DSP控制器的CPU直接支持17个CPU级中断——1个非屏蔽中断NMI和16个可屏蔽中断:INT1~INT14、RTOSINT和DLOGINT。要允许某中断,需要向IER中对应的允许位写1;要禁止某中断,则需向允许位写0。4.9DSP控制器的中断为什么要使用PIE进行扩展?PIE模块管理的中断源可分为几组,每组最多管理几个中断源?如何在PIE级允许某具体中断源?PIE中断的优先级是如何规定的?【答】:由于DSP控制器的CPU能直接响应的中断请求个数有限,而其众多外设的每一个均可产生一个或多个外设级中断请求,所以需要使用PIE对中断进行集中化扩展,使每一级CPU中断均可响应多个中断源。PIE模块管理的中断源可分为12组,每组最多管理8个中断源。PIE中断的优先级:总体优先级为INT1最高,INT12最低;每组中断中INTx.1最高,INTx.8最低。4.10若使用GPIO39作为外部中断XINT3的输入引脚,并利用引脚上电平的上升沿触发中断。试回答下列问题:(1)从中断使能的角度考虑,编程时应该设置哪些寄存器的哪些位,如何设置?(2)要实现XINT3输入引脚的选择,编程时应该设置哪些寄存器的哪些位,如何设置?(3)要实现XINT3中断触发信号的极性选择,编程时应该设置哪些寄存器的哪些位,如何设置?【答】:(1)XINT3CR[ENABLE]=0x1; //外设级中断使能PIEIER12[INTx1]=0x1; //PIE级中断使能IER[INT12]=0x1; //CPU级中断使能ST1[INTM]=0x0; //清除可屏蔽中断的屏蔽位(2)GPIOXINT3SEL[GPIOSEL]=0x7; //使用GPIO39作为外部中断XINT3的输入引脚GPBMUX1[GPIO39]=0x0; //GPIO39作为GPIO引脚GPBDIR[GPIO39]=0x0; //GPIO39作为输入引脚(3)XINT3CR[POLARITY]=0x1; //利用引脚上电平的上升沿触发中断4.11F28335DSP控制器支持哪些外部中断?PIE管理的外设级中断的中断响应流程大概包括哪几个步骤?请以外部中断XINT5为例,简述从中断信号产生到CPU为其执行中断服务程序,及中断服务程序退出的整个过程。【答】:DSP控制器支持7个外部可屏蔽中断:~,另有一个外部中断与非屏蔽中断XNMI复用。中断响应过程:第一步,若中断事件产生,且该中断在外设级是允许的(XINT5CR[ENABLE]=1),则该中断请求将送至PIE模块。第二步,PIE模块收到中断请求后,将置位PIEIFR12.3。第三步,若PIEIER12.3=1,且PIEACK12=0,则该中断请求将从PIE模块送至内核级,向CPU申请INT12中断。第四步,CPU收到中断请求后,将置位PIEACK12,并一直保持。四五步,IFR中INT12的标志位置1,指示CPU有INT12中断等待响应。第六步,若IER[INT12]=1,且INTM=0,则CPU将响应INT12中断。第七步,CPU识别中断并执行自动现场保护工作,清除IFR,并清除EALLOW。第八步,CPU根据PIECTRL寄存器的值找到XINT12的中断向量,并据此找到中断服务程序入口地址。第九步,执行中断服务程序。第十步,软件清除PIEACK12,返回。4.12什么是中断向量表?BROM向量和PIE向量各自映射到哪个区域,分别起什么作用?【答】:中断向量表用于存放中断服务程序入口地址。BROM向量映射到0x3FFFC0~0x3FFFFF区域;PIE向量映射到0x000D00~0x000DFF区域。器件复位时,复位向量从BROM向量表中读取。复位完成后,需在主程序中调用PieVectTableInit()函数重新初始化PIE向量表,允许从表PIE向量表中获取中断向量地址。4.13DSP控制器有哪些CPU定时器资源,它们可实现什么功能?简述其工作原理,并说明如何计算其定时周期。CPU定时器中断如何管理?哪些中断是通过PIE管理的?【答】:F28335有3个32位的CPU定时器:定时器0、1、2。CPU定时器具有定时、计时和计数的功能,可为DSP控制器提供时间基准,特别适合作为基准时钟实现用户软件各模块的同步。CPU定时器输入为系统时钟SYSCLKOUT,计数器TIMH:TIM根据预定标计数器PSCH:PSC分频后时钟计数,定时时间到达(计满一个周期)将产生相应中断信号。定时器的定时周期(中断一次的时间)为:(PRDH:PRD+1)×(TDDRH:TDDR+1)×TSYSCLKOUT。定时器2的中断独占CPU的INT14中断,定时器1的中断与外部中断复用INT13中断,定时器0的中断通过PIE模块与CPU中断相连。4.14CPU定时器的寄存器资源有哪些?如何对定时器进行初始化?【答】:CPU定时器的寄存器资源包括一个控制寄存器TIMERxTIM和6个数据寄存器(计数器TIMH:TIM、预定标计数器PSCH:PSC、周期寄存器PRDH:PRD和定时器分频寄存器TDDRH:TDDR)。对定时器进行初始化时,需要根据需求对上述寄存器进行初始化。4.15试分别用CPU定时器1和和2的中断进行延时,实现例4.4的功能。【答】:定时器1中断参考代码#include"DSP2833x_Device.h"#include"DSP2833x_Examples.h"interruptvoidcpu_time1_isr(void); //声明中断服务函数voidmain(void){//Step1.初始化时钟源模块InitSysCtrl();//Step2.初始化GPIO(描述如何将GPIO设置为初始状态)InitGpio();//Step3.清除所有中断;初始化PIE向量表:DINT; //可屏蔽中断屏蔽位INTM置位,禁止可屏蔽中断InitPieCtrl(); //初始化PIE控制寄存器(禁止所有中断,清除所有中断标志)IER=0x0000; //禁止CPU中断IFR=0x0000; //清除所有CPU中断标志InitPieVectTable(); //初始化PIE向量表,使其指向默认中断服务程序EALLOW;PieVectTable.XINT13=&cpu_timer1_isr;//重新映射使用的中断向量,使其指向中断服务程序.EDIS;//Step4.初始化本例中使用的外设模块:InitCpuTimers(); //本例中仅初始化CPU定时器//配置CPU定时器1:150MHzCPU频率,周期为100000微秒(即100ms)ConfigCpuTimer(&CpuTimer1,150,100000);CpuTimer1Regs.TCR.bit.TIE=0x1; //使能定时器中断CpuTimer1Regs.TCR.bit.TSS=0x0; //启动定时器工作XIntruptRegs.XNMICR.bit.SELECT=0;//定时器1中断连接到XINT13EALLOW; //宏指令,使能访问受保护寄存器GpioCtrlRegs.GPAMUX1.bit.GPIO0=0x0;//GPIO0作为GPIO引脚GpioCtrlRegs.GPADIR.bit.GPIO0=0x1; //GPIO0作为输出引脚GpioDataRegs.GPADAT.bit.GPIO0=0x0; //GPIO0输出低电平,点亮发光二极管EDIS; //宏指令,恢复寄存器的保护状态//Step5.用户特定代码:IER|=M_INT13; //使能CPU的INT13中断,该中断连接至TINT1EINT; //清除全局屏蔽位INTM以使能可屏蔽中断ERTM; //清除调试屏蔽位DBGM,允许调试//Step6.空循环,等待中断for(;;);}//Step7.用户自定义函数:interruptvoidcpu_timer1_isr(void) //定义中断服务函数{CpuTimer1.InterruptCount++;EALLOW;//宏指令,允许访问受保护寄存器GpioDataRegs.GPATOGGLE.bit.GPIO0=0x1; //GPIO0输出电平状态改变EDIS; //宏指令,恢复寄存器的保护状态}定时器2中断参考代码#include"DSP2833x_Device.h"#include"DSP2833x_Examples.h"interruptvoidcpu_timer2_isr(void); //声明中断服务函数voidmain(void){//Step1.初始化时钟源模块InitSysCtrl();//Step2.初始化GPIO(描述如何将GPIO设置为初始状态)InitGpio();//Step3.清除所有中断;初始化PIE向量表:DINT; //可屏蔽中断屏蔽位INTM置位,禁止可屏蔽中断InitPieCtrl(); //初始化PIE控制寄存器(禁止所有中断,清除所有中断标志)IER=0x0000; //禁止CPU中断IFR=0x0000; //清除所有CPU中断标志InitPieVectTable(); //初始化PIE向量表,使其指向默认中断服务程序EALLOW;PieVectTable.TINT2=&cpu_timer2_isr; //重新映射使用的中断向量,使其指向中断服务程序.EDIS;//Step4.初始化本例中使用的外设模块:InitCpuTimers(); //本例中仅初始化CPU定时器//配置CPU定时器0:150MHzCPU频率,周期为100000微秒(即100ms)ConfigCpuTimer(&CpuTimer2,150,100000);CpuTimer2Regs.TCR.bit.TIE=0x1; //使能定时器中断CpuTimer2Regs.TCR.bit.TSS=0x0; //启动定时器工作EALLOW; //宏指令,使能访问受保护寄存器GpioCtrlRegs.GPAMUX1.bit.GPIO0=0x0;//GPIO0作为GPIO引脚GpioCtrlRegs.GPADIR.bit.GPIO0=0x1; //GPIO0作为输出引脚GpioDataRegs.GPADAT.bit.GPIO0=0x0; //GPIO0输出低电平,点亮发光二极管EDIS; //宏指令,恢复寄存器的保护状态//Step5.用户特定代码:IER|=M_INT14; //使能CPU的INT1中断,该中断连接至TINT0EINT; //清除全局屏蔽位INTM以使能可屏蔽中断ERTM; //清除调试屏蔽位DBGM,允许调试//Step6.空循环,等待中断for(;;);}//Step7.用户自定义函数:interruptvoidcpu_timer2_isr(void) //定义中断服务函数{CpuTimer0.InterruptCount++;EALLOW;//宏指令,允许访问受保护寄存器GpioDataRegs.GPATOGGLE.bit.GPIO0=0x1; //GPIO0输出电平状态改变EDIS; //宏指令,恢复寄存器的保护状态}4.16试编程实现如下功能(1)利用GPIO0作为普通的I/O引脚,输出周期为10s、占空比为40%的矩形波(用CPU定时器0中断实现延时);(2)将GPIO1作为外部中断XINT1的输入引脚,并利用引脚上电平的下降沿触发中断,编程实现XINT1的中断;每进一次中断,改变GPIO7引脚的输出电平(使之连接的发光二极管闪烁);(3)将(1)中GPIO0输出的矩形波作为(2)中GPIO1的输入,实现程序的集成。【答】:(1)参考代码#include"DSP2833x_Device.h"#include"DSP2833x_Examples.h"interruptvoidcpu_timer0_isr(void); //声明中断服务函数voidmain(void){//Step1.初始化时钟源模块InitSysCtrl();//Step2.初始化GPIO(描述如何将GPIO设置为初始状态)InitGpio();//Step3.清除所有中断;初始化PIE向量表:DINT; //可屏蔽中断屏蔽位INTM置位,禁止可屏蔽中断InitPieCtrl(); //初始化PIE控制寄存器(禁止所有中断,清除所有中断标志)IER=0x0000; //禁止CPU中断IFR=0x0000; //清除所有CPU中断标志InitPieVectTable(); //初始化PIE向量表,使其指向默认中断服务程序EALLOW;PieVectTable.TINT0=&cpu_timer0_isr; //重新映射使用的中断向量,使其指向中断服务程序.EDIS;//Step4.初始化本例中使用的外设模块:InitCpuTimers(); //本例中仅初始化CPU定时器//配置CPU定时器0:150MHzCPU频率,周期为1000000微秒(即1s)ConfigCpuTimer(&CpuTimer0,150,1000000);CpuTimer0Regs.TCR.bit.TIE=0x1; //使能定时器中断CpuTimer0Regs.TCR.bit.TSS=0x0; //启动定时器工作EALLOW; //宏指令,使能访问受保护寄存器GpioCtrlRegs.GPAMUX1.bit.GPIO0=0x0;//GPIO0作为GPIO引脚GpioCtrlRegs.GPADIR.bit.GPIO0=0x1; //GPIO0作为输出引脚GpioDataRegs.GPADAT.bit.GPIO0=0x0; //GPIO0输出低电平,点亮发光二极管EDIS; //宏指令,恢复寄存器的保护状态//Step5.用户特定代码:IER|=M_INT1; //使能CPU的INT1中断,该中断连接至TINT0PieCtrlRegs.PIEIER1.bit.INTx7=1; //在PIE中断组1中使能TINT0中断EINT; //清除全局屏蔽位INTM以使能可屏蔽中断ERTM; //清除调试屏蔽位DBGM,允许调试//Step6.空循环,等待中断for(;;);}//Step7.用户自定义函数:interruptvoidcpu_timer0_isr(void) //定义中断服务函数{CpuTimer0.InterruptCount++;EALLOW;//宏指令,允许访问受保护寄存器if(CpuTimer0.InterruptCount%10<4)GpioDataRegs.GPASET.bit.GPIO0=0x1; //GPIO0输出高电平elseGpioDataRegs.GPACLEAR.bit.GPIO0=0x1; //GPIO0输出低电平EDIS; //宏指令,恢复寄存器的保护状态PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;//清除PIE中断组1的应答位,以便CPU再次响应之。}(2)参考代码#include"DSP2833x_Device.h"#include"DSP2833x_Examples.h"interruptvoidxint1_isr(void); //声明中断服务函数voidmain(void){//Step1.初始化时钟源模块InitSysCtrl();//Step2.初始化GPIO(描述如何将GPIO设置为初始状态)InitGpio();//Step3.清除所有中断;初始化PIE向量表:DINT; //可屏蔽中断屏蔽位INTM置位,禁止可屏蔽中断InitPieCtrl(); //初始化PIE控制寄存器(禁止所有中断,清除所有中断标志)IER=0x0000; //禁止CPU中断IFR=0x0000; //清除所有CPU中断标志InitPieVectTable(); //初始化PIE向量表,使其指向默认中断服务程序EALLOW;PieVectTable.XINT1=&xint1_isr; //重新映射使用的中断向量,使其指向中断服务程序.EDIS;//Step4.初始化本例中使用的外设模块:EALLOW;GpioCtrlRegs.GPAMUX1.bit.GPIO8=0;//GPIO8作GPIO引脚GpioCtrlRegs.GPADIR.bit.GPIO8=1;//GPIO8作输出GpioDataRegs.GPASET.bit.GPIO8=1;//GPIO8输出高电平GpioCtrlRegs.GPAMUX1.bit.GPIO1=0;//GPIO1作GPIO引脚GpioCtrlRegs.GPADIR.bit.GPIO1=0;//GPIO1作输入GpioCtrlRegs.GPAQSEL1.bit.GPIO1=2;//XINT1量化为6个采样窗口GpioCtrlRegs.GPACTRL.bit.QUALPRD0=0xFF;//每个采样窗口包含510*SYSCLKOUTGpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL=1;//GPIO1作XINT1引脚EDIS;XIntruptRegs.XINT1CR.bit.POLARITY=0;//下降沿触发中断XIntruptRegs.XINT1CR.bit.ENABLE=1;//使能XINT1中断//Step5.用户特定代码Xint1Count=0;//XINT1中断计数器PieCtrlRegs.PIEIER1.bit.INTx4=1;//PIE级中断使能IER|=M_INT1;//CPU级中断使能EINT;//全局中断使能ERTM; //清除调试屏蔽位DBGM,允许调试//Step6.空循环,等待中断for(;;);}//Step7.用户自定义函数:interruptvoidxint1_isr(void){ Xint1Count++;EALLOWGpioDataRegs.GPATOGGLE.bit.GPIO8=0x1;//GPIO8翻转EDIS PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;//清除PIE中断组1的应答位,以便CPU再次响应之。}(3)参考代码#include"DSP2833x_Device.h"#include"DSP2833x_Examples.h"interruptvoidcpu_timer0_isr(void); //声明中断服务函数interruptvoidxint1_isr(void); //声明中断服务函数voidmain(void){//Step1.初始化时钟源模块InitSysCtrl();//Step2.初始化GPIO(描述如何将GPIO设置为初始状态)InitGpio();//Step3.清除所有中断;初始化PIE向量表:DINT; //可屏蔽中断屏蔽位INTM置位,禁止可屏蔽中断InitPieCtrl(); //初始化PIE控制寄存器(禁止所有中断,清除所有中断标志)IER=0x0000; //禁止CPU中断IFR=0x0000; //清除所有CPU中断标志InitPieVectTable(); //初始化PIE向量表,使其指向默认中断服务程序EALLOW;PieVectTable.TINT0=&cpu_timer0_isr; //重新映射使用的中断向量,使其指向中断服务程序.PieVectTable.XINT1=&xint1_isr; //重新映射使用的中断向量,使其指向中断服务程序.EDIS;//Step4.初始化本例中使用的外设模块:InitCpuTimers(); //本例中仅初始化CPU定时器//配置CPU定时器0:150MHzCPU频率,周期为1000000微秒(即1s)ConfigCpuTimer(&CpuTimer0,150,1000000);CpuTimer0Regs.TCR.bit.TIE=0x1; //使能定时器中断CpuTimer0Regs.TCR.bit.TSS=0x0; //启动定时器工作EALLOW; //宏指令,使能访问受保护寄存器GpioCtrlRegs.GPAMUX1.bit.GPIO0=0x0;//GPIO0作为GPIO引脚GpioCtrlRegs.GPADIR.bit.GPIO0=0x1; //GPIO0作为输出引脚GpioDataRegs.GPADAT.bit.GPIO0=0x0; //GPIO0输出低电平,点亮发光二极管GpioCtrlRegs.GPAMUX1.bit.GPIO8=0;//GPIO8作GPIO引脚GpioCtrlRegs.GPADIR.bit.GPIO8=1;//GPIO8作输出GpioDataRegs.GPASET.bit.GPIO8=1;//GPIO8输出高电平GpioCtrlRegs.GPAMUX1.bit.GPIO1=0;//GPIO1作GPIO引脚GpioCtrlRegs.GPADIR.bit.GPIO1=0;//GPIO1作输入GpioCtrlRegs.GPAQSEL1.bit.GPIO1=2;//XINT1量化为6个采样窗口GpioCtrlRegs.GPACTRL.bit.QUALPRD0=0xFF;//每个采样窗口包含510*SYSCLKOUTGpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL=1;//GPIO1作XINT1引脚EDIS; //宏指令,恢复寄存器的保护状态XIntruptRegs.XINT1CR.bit.POLARITY=0;//下降沿触发中断XIntruptRegs.XINT1CR.bit.ENABLE=1;//使能XINT1中断//Step5.用户特定代码:Xint1Count=0;//XINT1中断计数器IER|=M_INT1; //使能CPU的INT1中断,该中断连接至TINT0PieCtrlRegs.PIEIER1.bit.INTx7=1; //在PIE中断组1中使能TINT0中断PieCtrlRegs.PIEIER1.bit.INTx4=1;//在PIE中断组1中使能XINT1中断EINT; //清除全局屏蔽位INTM以使能可屏蔽中断ERTM; //清除调试屏蔽位DBGM,允许调试//Step6.空循环,等待中断for(;;);}//Step7.用户自定义函数:interruptvoidcpu_timer0_isr(void) //定义中断服务函数{CpuTimer0.InterruptCount++;EALLOW;//宏指令,允许访问受保护寄存器if(CpuTimer0.InterruptCount%10<4)GpioDataRegs.GPASET.bit.GPIO0=0x1; //GPIO0输出高电平elseGpioDataRegs.GPACLEAR.bit.GPIO0=0x1; //GPIO0输出低电平EDIS; //宏指令,恢复寄存器的保护状态PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;//清除PIE中断组1的应答位,以便CPU再次响应之。}interruptvoidxint1_isr(void){ Xint1Count++;EALLOWGpioDataRegs.GPATOGGLE.bit.GPIO8=0x1;//GPIO8翻转EDIS PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;//清除PIE中断组1的应答位,以便CPU再次响应之。}4.17CPU处于HALT模式,设置GPIO7为CPU从HALT模式唤醒引脚(高→低→高),使用GPIO8外接发光二极管作为中断指示引信号(每进一次中断,发光二极管改变一次亮灭状态),试回答下列问题:(1)如何将GPIO7设置为低功耗模式唤醒引脚(应设置哪个寄存器的哪些位,如何设置)?此时GPIO7的方向应该设置为输入还是输出?(2)要使CPU进入HALT模式,应设置哪个寄存器的哪些位,如何设置?(3)从中断使能的角度考虑,编程时应该设置哪些寄存器的哪些位,如何设置?(4)编程实现题目要求的功能。【答】:(1)GPIOLPMSEL[GPIO7]=0x1;GPIO7作输入(2)LPMCR0[LPM]=0x2或0x3;(3)PIEIER1[INTx8]=0x1;IER[INT1]=0x1;ST1[INTM,]=0x0;(4)参考代码#include"DSP2833x_Device.h"#include"DSP2833x_Examples.h"interruptvoidwakeint_isr(void); //声明中断服务函数voidmain(void){//Step1.初始化时钟

温馨提示

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

评论

0/150

提交评论