电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者电子文章嵌入式系统采用MAXQ610评估套件(EV kit)和IAR嵌入式工作

采用MAXQ610评估套件(EV kit)和IAR嵌入式工作

11-20 17:12:23 | http://www.5idzw.com | 嵌入式系统 | 人气:276
标签:嵌入式系统开发,嵌入式开发,http://www.5idzw.com 采用MAXQ610评估套件(EV kit)和IAR嵌入式工作,http://www.5idzw.com
0101 1010)。而这种改变并不需要重新编译程序。首先,我们必须加入一个断点。程序运行时,打开isr.c文件,找到定时器中断矢量。双击代码第一行左侧的灰色区,将出现一个红色X。这一X表示加入了一个断点。当程序执行到这一行代码时,程序将停止,其屏幕显示如图10所示。绿色箭头和高亮显示的代码表示已经到达断点,程序暂停在这里。

图10. 断点设置和到达断点
图10. 断点设置和到达断点

在寄存器窗口中,从下拉列表中选择Port I/O。注意,代码使用了XOR (^)运算符来触发端口3 (P3)最下面的4个引脚,而这些引脚从未明确设置。为改变这一操作,单击PO3中的数值,输入新值0x05。输入后,您将看到,按照0101的模式,2个LED接通,2个LED关断。现在,单击Run。程序开始运行,直至到达断点而再次停止,LED将转换状态,因此,处理器现在输出1010模式。双击红色X,清除断点,然后,单击Go。程序将以交替LED模式不断运行。

在IAR嵌入式工作台中,您可以按照与寄存器一样的方法来观察并改变变量值。对此进行演示时,单击Stop或者选择Debug Stop Debugging,停止应用程序。现在,修改代码,在主函数中加入变量x,在while循环中嵌入延时循环。如下所示,输入对程序的一些修改。注意,在代码中故意设置了错误,稍后对它进行讨论。
void main()
{
  /*
   * Try to get a 1Hz blink on the LEDs. System clock = 12MHz. 
   * Timer reload = 0x5B8D = 23437. Running at div 256, so we get a timer
   * interrupt once every 23437*256 cycles = 5,999,872, or roughly 500ms.
   * We toggle every 500ms, so we get a 1Hz cycle.
   */
  long int x;
  TB0R = 0x5B8D;          // reload for timer 0
  TB0CN = 0x0416;         // timer set to run, enable interrupt, down count, div 256
  PD3 = 0x0f;             // set port 2 lower nibble to output
  IC_bit.IGE = 1;         // set global interrupt enable
  while (1)
  {
    for (x=0;x<100000;x++)
    {
      if (x==100000)
        PO3 = PO3 ^ 0x01;
    }
  }
}
这些改变用于偶尔触发端口3最下面一个引脚,因此,3个LED同步闪烁,而1个将独立闪烁。延时循环间隔并不重要,但是必须提供足够的延时才能观察到结果。运行该应用程序(开始调试,然后,运行),您将很快看到和最初的应用程序并没有什么不同;所有LED以1秒的间隔同时接通和关断。暂停应用程序,打开本地变量观察窗口(View Locals)。如果程序停在主应用程序的while循环(很有可能)中,窗口中将显示变量x (图11)。

前面曾提到上面的代码中有错误。现在,按下Step Over按钮几次,您将看到执行从循环对比(x<100000)跳到条件测试“if”声明(x ==100000),直到递增(x++),然后是本地窗口中x值的变化。在PO3 = PO3 ^ 0x01一行设置一个断点,单击Go。出于某些原因,执行并没有暂停。很明显,程序没有进入“if”声明。再次按下Break,将变量x值改为99999,单击Step Over几次。您将注意到,由于x=0部分被执行,“for”循环终止,然后再次开始。问题很明显—x值永远不会到达“for”循环中的100000,这是因为进行了“less than”测试。停止程序,将“if”声明中的对比值改为99999。重新编译程序,启动调试器,单击Go。LED开始闪烁,LED DS1自己独立闪烁。

图11. 本地变量窗口
图11. 本地变量窗口

了解详细信息

评估套件CD-ROM中提供本应用笔记所有文件的源代码。还可以从Maxim网站下载这些源代码。文件还含有工程文件;所有头文件和include文件;以及机器可装入.HEX输出文件,采用Maxim的MTK (微控制器工具套件)等终端模拟器直接可以装入并运行它(例如,不需要使用编译器工具包),可以下载这一模拟器。

上一页  [1] [2] [3] 

,采用MAXQ610评估套件(EV kit)和IAR嵌入式工作
关于《采用MAXQ610评估套件(EV kit)和IAR嵌入式工作》的更多文章