当前位置: 首页 > news >正文

美食网站主页怎么做软件开发外包交易平台

美食网站主页怎么做,软件开发外包交易平台,百度搜索数据,网站运营阶段一、介绍 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的。中断是指‌CPU在正常运行程序时#xff0c;由于内部或外部事件的发生#xff0c;导致CPU中断当前运行的程序#xff0c;转而去执行其他程序的过程。‌ 中断可以是硬件产生的#xff0c;也可以是…一、介绍 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的。中断是指‌CPU在正常运行程序时由于内部或外部事件的发生导致CPU中断当前运行的程序转而去执行其他程序的过程。‌ 中断可以是硬件产生的也可以是软件产生的。硬件中断通常由外围设备触发而软件中断则是通过CPU指令集中的一个指令来实现。 二、原理 (1)中断请求 中断源以硬件信号形式通过中断控制线路向CPU提出中断请求。 中断源引起中断事件的原因。 中断源可以是外部的硬件设备如键盘、打印机等输入/输出设备和各种控制设备也可以是软件指令如中断指令软中断访管指令还可能是由各种故障和出错引起的中断自陷如计算溢出等。 ⑵ 中断判优及响应,中断控制器根据中断优先权进行判断择优予以响应。 ⑶ 保护现场 ,CPU保护主程序的运行现状如PC值、PSW、寄存器和内存中的重要数据。 ⑷ 中断服务, 按中断源的工作要求,查询中断向量表执行相应的中断服务程序。 ⑸ 恢复现场, 为了正确返回原程序需要进行恢复现场的工作即将前面保存的寄存器的内容送回原寄存器。 ⑹ 中断返回 返回被中断的程序 继续执行。 外部中断/事件控制器 中断控制器NVIC  中断请求称为中断源或中断事件、是指外部设备或内部模块发出的信号通知微控制器发生了一个特定的事件。中断控制器中断控制器负责对中断请求进行管理和分配优先级如NVIC。中断优先级每个中断都具有一个优先级用于确定中断处理程序的执行顺序。较高优先级的中断会打断正在执行的较低优先级中断或主程序。中断处理程序中断服务函数是一段用于处理特定中断的代码。当中断发生时微控制器会跳转到相应的中断处理程序执行相关操作处理完毕后返回主程序。中断使能通过设置相应的中断使能位可以启用或禁用特定的中断。禁用中断后即使中断请求发生微控制器也不会响应。中断标志中断标志用于指示特定中断是否已经发生。在处理完中断后需要清除相应的中断标志以便再次触发相同中断。中断向量:是指中断服务程序入口地址的偏移量与段基值一个中断向量占据4字节空间。中断向量表中断向量表是存储中断处理程序地址的表格当中断发生时微控制器会根据中断向量表中相应中断的地址跳转到对应的中断处理函数。 三、实例 STM32处理中断的步骤 外设发出中断请求             处理器暂停当前执行的任务保护现场将当前位置的程序计数器PC地址压栈。             程序跳转到中断服务程序 执行中断服务程序              恢复现场 将栈顶的值会送到PC             跳转到被中断的位置执行下一个指令。 配置定时器的定时中断 #include stm32f10x.h // Device header/*** 函 数定时中断初始化* 参 数无* 返 回 值无*/ void Timer_Init(void) {/*开启时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //开启TIM2的时钟/*配置时钟源*/TIM_InternalClockConfig(TIM2); //选择TIM2为内部时钟若不调用此函数TIM默认也为内部时钟/*时基单元初始化*/TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; //定义结构体变量TIM_TimeBaseInitStructure.TIM_ClockDivision TIM_CKD_DIV1; //时钟分频选择不分频此参数用于配置滤波器时钟不影响时基单元功能TIM_TimeBaseInitStructure.TIM_CounterMode TIM_CounterMode_Up; //计数器模式选择向上计数TIM_TimeBaseInitStructure.TIM_Period 10000 - 1; //计数周期即ARR的值TIM_TimeBaseInitStructure.TIM_Prescaler 7200 - 1; //预分频器即PSC的值TIM_TimeBaseInitStructure.TIM_RepetitionCounter 0; //重复计数器高级定时器才会用到TIM_TimeBaseInit(TIM2, TIM_TimeBaseInitStructure); //将结构体变量交给TIM_TimeBaseInit配置TIM2的时基单元 /*中断输出配置*/TIM_ClearFlag(TIM2, TIM_FLAG_Update); //清除定时器更新标志位//TIM_TimeBaseInit函数末尾手动产生了更新事件//若不清除此标志位则开启中断后会立刻进入一次中断//如果不介意此问题则不清除此标志位也可TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); //开启TIM2的更新中断/*NVIC中断分组*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //配置NVIC为分组2//即抢占优先级范围0~3响应优先级范围0~3//此分组配置在整个工程中仅需调用一次//若有多个中断可以把此代码放在main函数内while循环之前//若调用多次配置分组的代码则后执行的配置会覆盖先执行的配置/*NVIC配置*/NVIC_InitTypeDef NVIC_InitStructure; //定义结构体变量NVIC_InitStructure.NVIC_IRQChannel TIM2_IRQn; //选择配置NVIC的TIM2线NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE; //指定NVIC线路使能NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 2; //指定NVIC线路的抢占优先级为2NVIC_InitStructure.NVIC_IRQChannelSubPriority 1; //指定NVIC线路的响应优先级为1NVIC_Init(NVIC_InitStructure); //将结构体变量交给NVIC_Init配置NVIC外设/*TIM使能*/TIM_Cmd(TIM2, ENABLE); //使能TIM2定时器开始运行 }/* 定时器中断函数可以复制到使用它的地方 void TIM2_IRQHandler(void) {if (TIM_GetITStatus(TIM2, TIM_IT_Update) SET){TIM_ClearITPendingBit(TIM2, TIM_IT_Update);} } */#include stm32f10x.h // Device header #include Delay.h #include OLED.h #include Timer.huint16_t Num; //定义在定时器中断里自增的变量int main(void) {/*模块初始化*/OLED_Init(); //OLED初始化Timer_Init(); //定时中断初始化/*显示静态字符串*/OLED_ShowString(1, 1, Num:); //1行1列显示字符串Num:while (1){OLED_ShowNum(1, 5, Num, 5); //不断刷新显示Num变量} }/*** 函 数TIM2中断函数* 参 数无* 返 回 值无* 注意事项此函数为中断函数无需调用中断触发后自动执行* 函数名为预留的指定名称可以从启动文件复制* 请确保函数名正确不能有任何差异否则中断函数将不能进入*/ void TIM2_IRQHandler(void) {if (TIM_GetITStatus(TIM2, TIM_IT_Update) SET) //判断是否是TIM2的更新事件触发的中断{Num ; //Num变量自增用于测试定时中断TIM_ClearITPendingBit(TIM2, TIM_IT_Update); //清除TIM2更新事件的中断标志位//中断标志位必须清除//否则中断将连续不断地触发导致主程序卡死} }四、中断和DMA有什么区别 中断传输方式是在数据缓冲区满后发生中断请求CPU进行中断处理将数据传输到内存而DMA方式则是以数据块为单位传输的在所要求传送的数据块全部传送结束时要求CPU进行中断处理。DMA运输的大部分时间CPU和输入输出都处于并行操作因此整个计算机系统的效率大大提高但DMA也是要利用中断的否则CPU无法获知数据已经传输结束。                参考 七STM32 NVIC 中断、优先级管理及 AFIO 时钟的开启_afio时钟-CSDN博客 一文搞懂中断-CSDN博客  单片机基础什么是中断系统、中断系统如何用(附中断系统应用实例)_中断系统 同时控制-CSDN博客
http://www.dnsts.com.cn/news/9381.html

相关文章:

  • 工程建设网站怎么提交wordpress在线视频插件
  • 网站建设个人职责网站更换域名seo
  • 鹿邑网站设计公司软件开发模型是什么
  • 上海网站建设市场分析简单个人网页制作
  • 阿里云虚拟主机网站吗响应式网站建设准备
  • 上海哪个网站最好用企业网站做的好
  • 山西做网站如何选择施工企业科技创新规划
  • 公司建网站空间桂林东西巷介绍
  • wordpress搭建多少钱wordpress分类seo标题
  • 宜春企业网站的建设网站建设开发公司地址
  • 九江网站排名网站建设运营部部长岗位职责
  • 相城建设监理有限公司网站vs2015做网站的后端
  • wordpress vr网站学院路网站建设
  • 开发电商网站多少钱页游网站建设
  • 公明网站建设wordpress保存远程图片
  • 昆明中小企业网站建设小广告图片
  • 网站忧化教程网站建设犭金手指C排名15
  • 西安网站开发公司哪家强可以做照片书的网站
  • 支付公司网站建设费怎么入账wordpress功能详解视频教程
  • 哪些企业会考虑做网站导入表格数据做地图网站
  • flash网站策划书卖东西怎么做网站
  • 九易建网站的建站流程网页设计模板素材网站
  • wordpress 建站赚钱网站用什么软件做败sp
  • 网页设计国外设计欣赏网站网站目录结构
  • 国外网页模板网站怎么让网站被搜索到
  • 软件外包多少钱优化公司排行榜
  • 阿盟住房与建设局门户网站wordpress延时插件
  • 如何提高网站打开速度做钢材的网站有哪些
  • 佛山中英文网站制作seo推广公司教程
  • 建设医药网站前要做什么审核网站开发与网页制作