打印
[应用相关]

两个程序有什么区别呢

[复制链接]
480|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
litengg|  楼主 | 2017-3-12 14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序一:
#include "msp430x14x.h"
#include "delay.h"
#define uchar unsigned char
#define uint  unsigned int
uchar const trdata[]={'A','B','C','D','E','F','G','H','I','J','K','L',0x0d,0x0a};
uchar i;
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P3SEL|=0X30;
  ME1|=UTXE0+URXE0;
  UCTL0|=CHAR;
  UTCTL0|=SSEL0;
  UBR10=0X00;
  UBR00=0X03;
  UMCTL0=0X4a;//设置波特率为9600
  UCTL0&=~SWRST;
  IE1|=UTXIE0;
  while(1)
  {
   
    for(i=0;i<14;i++)
    {
      TXBUF0=trdata[i];
      while(!(IFG1&UTXIFG0));
      
    }
   
   //_BIS_SR(LPM3_bits+GIE);
  }
}
#pragma vector=UART0TX_VECTOR
__interrupt void usart0_rx(void)
{
  _BIC_SR_IRQ(LPM3_bits);
}      //结果是自动循环发送。


程序二:
#include "msp430x14x.h"
#include "delay.h"
#define uchar unsigned char
#define uint  unsigned int
uchar const trdata[]={'Z','h','a','n','g','H','U','a','q','i','n','g',0x0d,0x0a,0x00};
uchar i;
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P3SEL|=0X30;
  ME1|=UTXE0+URXE0;
  UCTL0|=CHAR;
  UTCTL0|=SSEL0;
  UBR10=0X00;
  UBR00=0X03;
  UMCTL0=0X4a;//设置波特率为9600
  UCTL0&=~SWRST;
  IE1|=UTXIE0;
  while(1)
  {
   
    while(trdata[i]!=0x00)
    {
      TXBUF0=trdata[i];
      while(!(IFG1&UTXIFG0));
      //IFG1&=~UTXIFG0;
      i++;   
    }
   
   // _BIS_SR(LPM3_bits+GIE);
  }
}
#pragma vector=UART0TX_VECTOR
__interrupt void usart0_rx(void)
{
  _BIC_SR_IRQ(LPM3_bits);
}                 //结果是每按一次复位键,完整的发送一次。
沙发
bbapple| | 2017-3-12 14:24 | 只看该作者
上面的I应该是局部变量,下面的应该是全局变量

使用特权

评论回复
板凳
handleMessage| | 2017-3-12 14:29 | 只看该作者
理论上就会相差很大吧,下面的一个i没有复位,所以当i>14,trdata=0x00的状态持续。就不会再发送了。。
。。

使用特权

评论回复
地板
zhouhuanの| | 2017-3-12 14:30 | 只看该作者
建议还是尽量少用全局变量。

使用特权

评论回复
5
litengg|  楼主 | 2017-3-12 14:36 | 只看该作者
嗯呢  多谢了,大概知道差别在哪里了

使用特权

评论回复
6
wanglaojii| | 2017-3-12 14:37 | 只看该作者
全局和局部有时会有差别的。。

使用特权

评论回复
7
laozhongyi| | 2017-3-12 14:46 | 只看该作者
是变量弄混淆了吗?有什么差别?

使用特权

评论回复
8
Edisons| | 2017-3-12 14:49 | 只看该作者
是不是你的变量是不是变为0了?

使用特权

评论回复
9
_gege| | 2017-3-12 14:52 | 只看该作者
这个是变量空间定义的问题吧

使用特权

评论回复
10
Mozarts| | 2017-3-12 14:55 | 只看该作者
显示的标识不一样吧,楼主看看。

使用特权

评论回复
11
Listate| | 2017-3-12 14:59 | 只看该作者
中断里面执行的程序不能太多。。。

使用特权

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

本版积分规则

51

主题

1597

帖子

4

粉丝