色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MSP430F149單片機驅(qū)動DS2762讀寫操作C語言程序

          MSP430F149單片機驅(qū)動DS2762讀寫操作C語言程序

          作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
          基于作C語言程序,能夠?qū)Π存I或著其他信號響應(yīng),讀出電流以及電壓量,并進(jìn)行相應(yīng)處理。
          //#include
          #define uchar unsigned char
          #define uint unsigned int
          uint A,B,C,D,E,F,G,H,I,J;//此處對io430x14x中的宏定義C進(jìn)行了注釋,需注意
          #define IO_OUT P3DIR |= BIT0;
          #define IO_INP P3DIR &= ~BIT0;
          uint data;
          /******************************************************************************
          對讀寫時間進(jìn)行規(guī)范化
          初始調(diào)試采用standard=1的參數(shù)
          // Pause for exactly tick number of ticks = 0.25us
          實際測的A延時14Us
          B125US
          ******************************************************************************/
          void SetSpeed(uint standard)
          {
          // Adjust tick values depending on speed
          if (standard)
          {
          // Standard Speed
          A = 6 * 4 / 2;
          B = 64 * 4 / 2;
          C = 60 * 4 / 2;
          D = 10 * 4 / 2;
          E = 9 * 4 / 2;
          F = 55 * 4 / 2;
          G = 0 / 2;
          H = 480 * 4 / 2;
          I = 70 * 4 / 2;
          J = 410 * 4 / 2;
          }
          else
          {
          // Overdrive Speed
          A = 1.5 * 4;
          B = 7.5 * 4;
          C = 7.5 * 4;
          D = 2.5 * 4;
          E = 0.75 * 4;
          F = 7 * 4;
          G = 2.5 * 4;
          H = 70 * 4;
          I = 8.5 * 4;
          J = 40 * 4;
          }
          }
          /******************************************************************************
          延時程序
          注意,需要選用8M晶振,時鐘周期125ns
          ******************************************************************************/
          void tickDelay(uint tick) // Implementation is platform specific
          {
          for(;tick>0;tick--);
          }
          /******************************************************************************
          主機復(fù)位脈沖
          當(dāng)接收結(jié)果result為0時,表明從機應(yīng)答
          ******************************************************************************/
          uchar OWTouchReset(void)
          {
          uchar result;
          IO_OUT;
          tickDelay(G);
          P30 = 0; // Drives DQ low
          tickDelay(H);
          P30 = 1; // Releases the bus
          tickDelay(I);
          IO_INP;
          result = P3IN & 0X01; // Sample for presence pulse from slave
          tickDelay(J); // Complete the reset sequence recovery
          return result; // Return sample presence pulse result
          }
          /******************************************************************************
          像寫DS2762寫入一位
          Send a 1-Wire write bit. Provide 10us recovery time.
          ******************************************************************************/
          void OWWriteBit(uchar bit)
          {
          if (bit)
          {
          // Write 1 bit
          P30 = 0; // Drives DQ low
          tickDelay(A);
          P30 = 1; // Releases the bus
          tickDelay(B); // Complete the time slot and 10us recovery
          }
          else
          {
          // Write 0 bit
          P30 = 0; // Drives DQ low
          tickDelay(C);
          P30 = 1; // Releases the bus
          tickDelay(D);
          }
          }
          上一頁 1 2 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉