运行程序后 new和old都有值可是相减后T值总是0为什么

2019-07-23 13:28发布

#include "MSp430G2553.h"
#include"LCD.h"
unsigned int old=0,new=0,T,zhuangsu;
unsigned char overflow;

void main( void )
{


          WDTCTL = WDTPW + WDTHOLD;
         P1DIR|=BIT6;
          P1SEL|=BIT2;//P1.2->捕获输入
          P1OUT&=~BIT6;//关闭LED
          BCSCTL1 = CALBC1_1MHZ;         
          DCOCTL  = CALBC1_1MHZ;
          Port_init();
                                      //delay_ms(100);
                                      LCD_init();
                                      LCD_clear();
          CCTL1=CM_1+SCS+CCIS_0+CAP+CCIE;//上升沿+同步+CCI0A(p1.2)+捕获功能+捕获中断
          TACTL=TASSEL_2+MC_2+TAIE+TACLR;
          _EINT();
          while(1){_BIS_SR(GIE);
          xianshi();
          }
}
void xianshi(void)
{

             T=2*T/1000000;
             zhuangsu=60/T;
        LCD_write_str(0,0,"zhuangsu:");
                                                                LCD_write_char(0,1,num_char_table[zhuangsu/10000]);
                                                                LCD_write_char(1,1,num_char_table[zhuangsu%10000/1000]);
                                        //LCD_write_char(3,1,'.');
                                                                LCD_write_char(2,1,num_char_table[zhuangsu%1000/100]);
                                                        LCD_write_char(3,1,num_char_table[zhuangsu%100/10]);
                                                LCD_write_char(4,1,num_char_table[zhuangsu%10]);
                                                                 //LCD_write_char(4,1,num_char_table[0]);
                                                                  LCD_write_str(5,1,"zhuang/min");
}
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A (void)
{
  switch(TAIV)
  {
    case 2:
      if(CCTL1&CM_1)
      {
      
        new=TAR;
        T=new-old;
        overflow=0;
      }
      old=new;
      P1OUT^=BIT6;
      break;
    case 10:
      overflow++;
      break;
    default:
      break;
   }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
wuhany
1楼-- · 2019-07-25 17:40

;P
问题解决了就好:handshake
多多交流
shimx
2楼-- · 2019-07-25 22:27
 精彩回答 2  元偷偷看……
comeon201208
3楼-- · 2019-07-26 01:03
这个先看下三个变量的数据类型是否为同一种类型的。
comeon201208
4楼-- · 2019-07-26 01:39
若T为整形,那两个为float类型的,这两有仅在小数位上有差异的,不论怎样,T都是0的

一周热门 更多>