搜索
bottom↓
回复: 8

MSP430F2132 控制一个LED灯,软件仿可以,硬件为什么不行?

[复制链接]

出0入0汤圆

发表于 2010-8-7 12:50:49 | 显示全部楼层 |阅读模式
芯片用的是MSPf2132 ,就用来控制LED灯的亮和灭,程序如下  :#include "msp430f2132.h"

void delay_nms(unsigned int n)
{
  unsigned int i,j ;
  for(j=1;j<n;j++)
    for(i=1;i<800;i++);
}

int main( void )
{

  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
   P2DIR = 0xff;                   //设置P2口方向为输出
   P2OUT = 0xff;

  
  while(1)
  {
   
    P2OUT = 0x00;
    delay_nms(500);
    P2OUT =0Xff;
   delay_nms(500);
  }
  
  问题是::软件仿真可以控制LED的亮和灭。但实际硬件运行时,只是一直在亮   ,没有灭。而且把延时时间改变,也是一直在亮。。

  请问是什么原因??

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-8-7 20:28:13 | 显示全部楼层
回复【楼主位】fengruijue
-----------------------------------------------------------------------
你的软件编写的是没有问题的,在我的电路板上能正常运行,那就是你电路板的问题了,比如复位电路是否正常?当有仿真器接上时能通过仿真器这边的接口能正常复位,从而能正常工作;当拔掉仿真器后重新上电,有可能你电路板上电时不能可靠复位死机了,所以就一直保持在亮的状态。

出0入0汤圆

发表于 2010-8-8 21:58:06 | 显示全部楼层
//******************************************************************************
//   MSP430F21x2 Demo - Basic Clock, LPM3 Using WDT ISR, VLO ACLK
//
//   Description: This program operates MSP430 normally in LPM3, pulsing P1.0
//   ~ 6 second intervals. WDT ISR used to wake-up system. All I/O configured
//   as low outputs to eliminate floating inputs. Current consumption does
//   increase when LED is powered on P1.0. Demo for measuring LPM3 current.
//   ACLK = VLO/2, MCLK = SMCLK = default DCO ~1.2MHz
//
//                MSP430F21x2
//             -----------------
//         /|\|              XIN|-
//          | |                 |
//          --|RST          XOUT|-
//            |                 |
//            |             P1.0|-->LED
//
//   A. Dannenberg
//   Texas Instruments Inc.
//   October 2006
//   Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.41A
//******************************************************************************
#include "msp430x21x2.h"

volatile unsigned int i;

void main(void)
{
  WDTCTL = WDT_ADLY_1000;                   // WDT 1s*4 interval timer
  BCSCTL1 |= DIVA_1;                        // ACLK/2
  BCSCTL3 |= LFXT1S_2;                      // ACLK = VLO
  IE1 |= WDTIE;                             // Enable WDT interrupt
  P1DIR = 0xFF;                             // All P1.x outputs
  P1OUT = 0;                                // All P1.x reset
  P2SEL = 0;                                // All P2.x GPIO function
  P2DIR = 0xFF;                             // All P2.x outputs
  P2OUT = 0;                                // All P2.x reset
  P3DIR = 0xFF;                             // All P3.x outputs
  P3OUT = 0;                                // All P3.x reset

  while(1)
  {
    __bis_SR_register(LPM3_bits + GIE);     // Enter LPM3, enable interrupts
    P1OUT |= 0x01;                          // Set P1.0 LED on
    for (i = 5000; i > 0; i--);             // Delay
    P1OUT &= ~0x01;                         // Clear P1.0 LED off
  }
}

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

// *********************************************************************************
// 说明:这是TI提供的MSP430F21x2的DEMO程序包中的一个,由于看门狗定时器的1000mS是基于32768Hz的ACLK的,而这个DEMO将其设为VLO方式且2分频,估计只有6KHz左右。此程序运行发现,LED灯闪烁的间隔大概在6.2S。
// F21x2相对于F149,其管脚大量复用,必须先行进行功能设置,即定义PxSEL=??


//

出0入0汤圆

发表于 2010-8-9 08:39:53 | 显示全部楼层
回复【2楼】scty
// F21x2相对于F149,其管脚大量复用,必须先行进行功能设置,即定义PxSEL=??


如果是控制1个LED,最好按位操作试一下,

出0入0汤圆

发表于 2010-8-9 18:59:52 | 显示全部楼层
for(i=1;i<800;i++); 太短了吧。
看不出“灭”来

出0入0汤圆

发表于 2010-8-10 16:27:14 | 显示全部楼层
回复【4楼】lningbd
for(i=1;i&lt;800;i++); 太短了吧。
看不出“灭”来
-----------------------------------------------------------------------

用的是两重的循环延时,也不短了。
void delay_nms(unsigned int n)
{
  unsigned int i,j ;
  for(j=1;j<n;j++)
    for(i=1;i<800;i++);
}

出0入0汤圆

 楼主| 发表于 2010-8-15 14:47:41 | 显示全部楼层
谢谢各位.已经找到原因了.复位脚应该接一个4.7K的上拉电阻.感谢大家的回贴

出0入0汤圆

发表于 2011-3-30 16:41:38 | 显示全部楼层
电路有没有问题

出0入0汤圆

发表于 2011-5-10 16:41:00 | 显示全部楼层
你怎么驱动的?直接控制够呛,电流太小了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 00:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表