打印

仿真状态下程序可以运行,不仿真时不能运行

[复制链接]
3893|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
昊430|  楼主 | 2017-10-21 17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 昊430 于 2017-10-21 17:32 编辑
#include  <io430g2553.h>
#include <in430.h>
//#include  "BoardConfig.h"

void main(void)
{
   unsigned int i;
  //BoardConfig(0xb8);
  BCSCTL1 |= DIVA_2;                        // ACLK/4
  WDTCTL = WDT_ADLY_1000;                   // WDT 1s/4 interval timer
  IE1 |= WDTIE;                             // Enable WDT interrupt
  P1DIR |= BIT6;
  P1OUT |= BIT6;
  for (i = 180; i>0; i--);
  P1OUT &= ~BIT6;  
  
  while(1)
  {
    unsigned int i;
    _BIS_SR(LPM3_bits + GIE);               // Enter LPM3
    P1OUT |= BIT6;                          // Set P3.5 LED on
    for (i = 180; i>0; i--);               // Delay
    P1OUT &= ~BIT6;                         // Clear P3.5 LED off
  }
}

#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer (void)
{
    _BIC_SR_IRQ(LPM3_bits);                 // Clear LPM3 bits from 0(SR)
}

相关帖子

沙发
昊430|  楼主 | 2017-10-21 17:35 | 只看该作者
以上是程序,用的是TI的LaunchPad板子,单片机是MSP430G2553,当点击IAR软件下载并仿真后,点击全速运行,小灯瞬间闪了一下,然后大概8S闪一下;
退出仿真模式,按下重启,小灯瞬间闪烁一下,然后就没有动作了;
为什么不在仿真模式下看门狗定时器就不能产生中断了?

使用特权

评论回复
板凳
dirtwillfly| | 2017-10-21 18:13 | 只看该作者
可能闪灯太快,肉眼看不到

使用特权

评论回复
地板
昊430|  楼主 | 2017-10-22 09:08 | 只看该作者
dirtwillfly 发表于 2017-10-21 18:13
可能闪灯太快,肉眼看不到

但是仿真模式下我也是全速运行的,没有让它单步运行

使用特权

评论回复
5
dirtwillfly| | 2017-10-22 15:56 | 只看该作者
昊430 发表于 2017-10-22 09:08
但是仿真模式下我也是全速运行的,没有让它单步运行

不一样的。仿真模式下是上位机控制着mcu的时钟在运行

使用特权

评论回复
6
dirtwillfly| | 2017-10-22 15:57 | 只看该作者
或者你运行一下官网的例程,看看还有没有这种情况
//******************************************************************************
//  MSP430G2xx3 Demo - WDT, Toggle P1.0, Interval Overflow ISR, 32kHz ACLK
//
//  Description: Toggle P1.0 using software timed by WDT ISR. Toggle rate is
//  exactly 250ms based on 32kHz ACLK WDT clock source.  In this example the
//  WDT is configured to divide 32768 watch-crystal(2^15) by 2^13 with an ISR
//  triggered @ 4Hz.
//  ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO
//  //* External watch crystal installed on XIN XOUT is required for ACLK *//       
//
//                  MSP430G2xx3
//             -----------------
//         /|\|              XIN|-
//          | |                 | 32kHz
//          --|RST          XOUT|-
//            |                 |
//            |             P1.0|-->LED
//
//  D. Dang
//  Texas Instruments Inc.
//  December 2010
//   Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
//******************************************************************************

#include <msp430.h>


int main(void)
{
  WDTCTL = WDT_ADLY_250;                    // WDT 250ms, ACLK, interval timer
  IE1 |= WDTIE;                             // Enable WDT interrupt
  P1DIR |= 0x01;                            // Set P1.0 to output direction

  __bis_SR_register(LPM3_bits + GIE);       // Enter LPM3 w/interrupt
}

// Watchdog Timer interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(WDT_VECTOR))) watchdog_timer (void)
#else
#error Compiler not supported!
#endif
{
  P1OUT ^= 0x01;                            // Toggle P1.0 using exclusive-OR
}

使用特权

评论回复
7
xiaoyaodz| | 2017-10-22 22:06 | 只看该作者
程序没有下载进去。

使用特权

评论回复
8
xiaoyaodz| | 2017-10-22 22:10 | 只看该作者
建议楼主使用msp430串口下载程序。

使用特权

评论回复
9
昊430|  楼主 | 2017-10-23 08:20 | 只看该作者
dirtwillfly 发表于 2017-10-22 15:57
或者你运行一下官网的例程,看看还有没有这种情况
//*************************************************** ...

两种状态下的闪烁情况不一样,下载程序后运行是8秒灭,8秒亮;
仿真状态下差不多是0.5秒灭,0.5秒亮;
仿真状态下和正常运行时的时钟不一样吗?

使用特权

评论回复
10
昊430|  楼主 | 2017-10-23 08:22 | 只看该作者
xiaoyaodz 发表于 2017-10-22 22:06
程序没有下载进去。

肯定下载进去了,要不然按下重启的瞬间小灯不能闪一下,那是我专门为了验证是不是下载程序加的一段,

使用特权

评论回复
11
昊430|  楼主 | 2017-10-23 08:23 | 只看该作者
dirtwillfly 发表于 2017-10-22 15:56
不一样的。仿真模式下是上位机控制着mcu的时钟在运行

您的意思是仿真状态下全速运行的时钟和正常上电运行的时钟不一样吗?

使用特权

评论回复
12
dirtwillfly| | 2017-10-23 18:47 | 只看该作者
昊430 发表于 2017-10-23 08:20
两种状态下的闪烁情况不一样,下载程序后运行是8秒灭,8秒亮;
仿真状态下差不多是0.5秒灭,0.5秒亮;
仿 ...

恩,不一样的。仿真的时候是上位机在控制mcu的运行

使用特权

评论回复
13
youtome| | 2017-10-23 21:55 | 只看该作者
说明程序没有下载成功。

使用特权

评论回复
14
cemaj| | 2017-10-23 21:55 | 只看该作者
检测了时钟信号了吗

使用特权

评论回复
15
xiaoyaozt| | 2017-10-23 21:56 | 只看该作者
电压供电的问题吧。

使用特权

评论回复
16
youtome| | 2017-10-23 21:56 | 只看该作者
检查Flash是否完整?

使用特权

评论回复
17
xiaoyaozt| | 2017-10-23 21:56 | 只看该作者
在没有电源的情况下,可能供电不足。

使用特权

评论回复
18
cemaj| | 2017-10-23 21:56 | 只看该作者
可能直接运行的时候晶振不能正常工作。

使用特权

评论回复
19
linqing171| | 2017-10-24 12:10 | 只看该作者
供电是仿真器供的。

使用特权

评论回复
20
pkuzhx| | 2017-10-24 13:46 | 只看该作者
我觉得dirtwillfly说得对,你把delay设置的长一些再试试看。
for (i = 180; i>0; i--);只有这么点delay,肯定不够8s的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

975

帖子

5

粉丝