第5章-作业题.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 ARM Cortex_M3微控制器 一 填空题 LM3S微控制器的片上资源有I/O口、UART、A/D、GPTM、SSI总线、I2C总线、PWM、CAN、以太网、USB。 Stellaris微控制器提供一个集成的LDO稳压电源,电压调节范围是:2.25-2.75V。 Stellaris微控制器通常情况下有__系统时种、PWM时种、A/D采样时种、CAN模块时钟输出。 睡眠模式指的是内核和存储器都不工作,外设可以正常工作,系统时钟与运行模式相同。 深度睡眠模式指的是内核和存储器都不工作,外设可以正常工作,系统时钟只能使用主振荡器。 Stellaris微控制器系统需要_3.3_V的电源供电。 Stellaris微控制器的每一个I/O口都可用于通用I/O、中断、特殊功能等功能。 LM3S的定时器包含4个GPTM模块,可工作于32、16位定时模式,16位输入捕获模式,16位PWM模式。 MCS-51单片机中的16位定时器属于加1计数模式,LM3S微控制器的GPTM属于减1计数模式。 LM3S的串口功能有通用异步串口通信_、_红外通信模式两种主功能。 LM3S的ADC模块是属于10位A/D转换器。最大转换频率为1Mbps。工作时采用基于序列采样方式使一次可以完成多路模拟量的采集。 二 简答题 Stellaris微控制器内部和外部的晶振频率范围是多少?使用PLL功能时的工作频率是多少? 答:内部采用12MHz时种,外部采用0~8MHz,PLL工作可以将低频时钟倍频到200MHz。 请利用库函数设置外部晶振8MHz,利PLL后,让系统内核时钟为20MHz。 答:SysCtlClock(SYSCTL_XTAL_8MHZ|SYSCTL_OSC_MAIN|SYSCTL_USE_PLL|SYSCTL_SYSDIV_10) 请利用库函数设置处理器进入睡眠模式,并说明如何退出睡眠模式? 答:进入睡眠模式:SysCtlSleep() 退出睡眠模式:任何一个中断都可以使进入睡眠状的处理器退出睡眠模式。 操作定时器让开发板上的4只LED软流流发光,其亮灭时间为0.5s。 发光二极管电路原理如图所示,系统时钟采用外接6MHz,先进行预分频100,变成频率为60000Hz,周期为,再计数30000次()。 代码: 主程序:时种配置、外围模块的使能、定时器0设置成16位周期定时,预分频100,初值为30000。 void main() { SysCtlClockSet(SYSCTL_USE_OSC|SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ |SYSCTL_SYSDIV_1); SysCtlPeriEnable(SYSCTL_PERIPH_GPIOB); //使能B口 GPIOPinTypeOut(GPIO_PORTB_BASE, GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6); //管脚输出 SysCtlPeriEnable(SYSCTL_PERIPH_TIMER0); //使能Timer0模块 TimerConfigure(TIMER0_BASE, TIMER_CFG_16_BIT_PAIR |TIMER_CFG_A_PERIODIC); //16位周期定时 TimerPrescaleSet(TIMER0_BASE, TIMER_A, 99); //预先进行100分频(6M/100)=60000 TimerLoadSet(TIMER0_BASE, TIMER_A, 30000);// 设置Timer初值,定时500ms TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); //使能Timer超时中断 IntEnable(INT_TIMER0A); // 使能Timer中断 IntMasterEnable(); //使能处理器中断 TimerEnable(TIMER0_BASE, TIMER_A); //使能Timer计数 while(1){;} //循环 } 中断服务程序:间隔0.5s,PB1、PB4、PB5、PB6依次输出1,点亮四只发光二极管。 void Timer0A_ISR(void) { unsigned char i; unsigned long ulStatus; ulStatus = TimerIntStatus(TIMER0_BASE, true); // 读取中断状态 TimerIntClear(TIMER0_BASE, ulStatus); //

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档