新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 混合信号嵌入式设计实验指南-数字实验之:实验2—中断

混合信号嵌入式设计实验指南-数字实验之:实验2—中断

作者:时间:2013-12-26来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/256987.htm

1.2.6 实验2F—强迫一个

步骤1:创建新的工程。复制Lab2E,将其命名为Lab2F。所有参数和跳线连接保持一样。重新生成应用。有时候,通过软件强迫产生一个是非常有利的。通过设置的INT_CLRx

寄存器能实现这个功能。对于休眠定时器,这是INT_CLR0 的第6 位。为了保证该位不是偶然设置的,必须设置使能软件中断位(ENSWINT),该位为INT_MSK3 寄存器的第7 位。表1.4 给出了操作INT_CLRx 位的可能结果。

1.4 INT_CLRx ENSWINT 行为/结果表

行为

结果

从INT_CLRx

位读一个0

从INT_CLRx

位读一个1

当ENSWINT=0,写0

到INT_CLRx

当ENSWINT=0,写1

到INT_CLRx

当ENSWINT=1,写0

到INT_CLRx

当ENSWINT=1,写1

到INT_CLRx

练习2F-1:在前面的实验中,没有通过添加代码设置ENSWINT 为0 来清除已经发布的中断,为什么这样做?

步骤2:修改代码。

添加代码使能ENSWINT。添加控制循环代码强制休眠定时器发布一个中断。

练习2F-2:现在,这个程序如何工作?重新生成工程,重新建立工程,下载到Eval1 板子,运行。练习2F-3:现在操作是否和你的预测一样?

1.2.7 实验2G—创建非常小的中断服务例程

步骤1:创建新的工程。

复制Lab2F,将其命名为Lab2G。设置Sleep_Timer 全局参数为64Hz 。

所有其他参数和跳线连接保持一样。有时候,中断服务程序是很小的,这样它就能驻留在用于它的输入向量的4 个字节空间。

步骤2:修改代码。删除main.c 中的中断句柄。创建全局单字节变量bCount 。删除使能ENSWINT 的代码。

删除强制一个中断的代码。

打开boot.tpl ,添加汇编代码到休眠定时器中断向量位置,用于减这个新的变量

(确保保留reti)。练习2G-1 :这个中断句柄占用多少个字节?

在控制循环中添加代码:

— 打开所有的四个灯。

—设置bCount 为255 。

—等待bCount 为0。

—关闭LED4 。

—设置bCount 为192 。

—等待bCount 为0。

—关闭LED3 。

—设置bCount 为128 。

—等待bCount 为0。

—关闭LED2 。

—设置bCount 为64。

—等待bCount 为0。

—关闭LED1 。

—设置bCount 为32。

—等待bCount 为0。练习2G-2 :输出行为将如何?重新生成应用程序,重新建立工程,下载到Eval1 板子,并运行。练习2G-3 :真正的操作和预测的一样吗?


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭