亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? comms_uart.c

?? 430系列開發之MSP430FE42x開發代碼實例
?? C
字號:
//**************************************************************************
//    UART commmunication for the FE427
//
//    Stefan Schauer
//    Texas Instruments Freising
//    Date        Comments
//    =====================
//    07/01/03    Code Starts for FE427

//**************************************************************************
#include "device.h"
#include "comms_uart.h"
#include "subroutines.h"
#include "display.h"
#include "uart0.h"
#include "fet4xx_rtclcd.h"
#include "emeter.h"
#include "calibration.h"
#include "parameter.h"

#include <math.h>
#include <stdio.h>

#ifdef withUARTComm

// ************************************************************
// Definitions & Declarations
// ************************************************************

const char * txt_help = "\
UART commands:\r\
 shxx: set hour\r\
 smxx: set minutes\r\
 ssxx: set seconds\r\
 xsdxx: set day\r\
 xsoxx: set month\r\
 xsyxx: set year\r\
\r\
 dx: set Display mode\r\
  1: Off\r\
  2: Time\r\
  3: Date\r\
  4: Voltage (V)\r\
  5: Current (A)\r\
  6: PeakVoltage (V)\r\
  7: PeakCurrent (A)\r\
  8: Frequency (Hz)\r\
  9: CosPhi\r\
  A: Temp\r\
  B: Power (kW)\r\
  C: Energy (kWh)\r\
\r\
 h : show help test\r\
 tx: set test dump mode\r\
 r : reset system\r\
 mx: execute calibration measuerment over x*50 cycles\r\
 i : init\r\
\r\
 c0: auto calibration of U / I / P / PhaseShift\r\
 c1: calibration of Interrupt Level\r\
 c2: calibration of Phase correction 1\r\
 c3: calibration of Phase correction 2\r\
 c4: calibration of V1 Offset\r\
 c5: calibration of I1 Offset\r\
 c6: calibration of I2 Offset\r\
 c9: save settings to flash\r\
 ca: calibration of V Ratio\r\
 cb: calibration of I Ratio\r\
 cc: calibration of Energy Ratio\r\
 + : inc values for calibration\r\
 - : dec values for calibration\r\
";

// ************************************************************
// functions forward declarations
// ************************************************************

int Digit0(unsigned char Register);
int Digit1(unsigned char Register);
int Hex2ASCII(int hex);   

// ************************************************************
// functions
// ************************************************************

void InitUART(unsigned long baud)
{
  //UART
  UCTL0 = CHAR+SWRST;                   // 8-bit character


switch(baud)
{
  case 9600:
    UTCTL0 = SSEL0;                     // UCLK = ACLK
    UBR00 = 0x03;                         // 32k/9600 
    UBR10 = 0x00;                         //
    UMCTL0 = 0x4a;                        // 
    break;
  
  case 19200:
    UTCTL0 = SSEL1;                       // UCLK = SMCLK
    UBR00 = 0xDA;                         // 4MHz/19200 
    UBR10 = 0x00;                         //
    UMCTL0 = 0x55;                        // 
    break;
  case 57600:
    UTCTL0 = SSEL1;                       // UCLK = SMCLK
    UBR00 = 0x48;                         // 4Mhz/57600 
    UBR10 = 0x00;                         //
    UMCTL0 = 0x7B;                        // 
    break;
  case 115200:
    UTCTL0 = SSEL1;                       // UCLK = SMCLK
    UBR00 = 0x24;                         // 4Mhz/115.2k 
    UBR10 = 0x00;                         //
    UMCTL0 = 0x29;                        // 
    break;
  default:
    while(1){;}
    //break;
  }
  U0ME |= UTXE0+URXE0 ;                 // Enabled USART0 TXD/RXD

  P2SEL |= (BIT4 + BIT5);               // P2.4,5 = USART0 TXD/RXD
  P2DIR |= BIT4;                        // P2.4 output direction

  U0IFG &= ~URXIFG0;                    // Clear USART0 RX interrupt flag

  UCTL0 &= ~(SWRST);                    // 8-bit character - clr SWRST bit
  
//  U0IE |= URXIE0+UTXIE0;                // Enable USART0 RX + TX interrupt
  U0IE |= URXIE0;                       // Enable USART0 RX interrupt
}

void SendString(const char* ARRAY)
{
int i=0;

   while (ARRAY[i])          // transmit " String" via RS232
   {  
      SendChar(ARRAY[i]);
      i++;
   }
}
   
void SendResult(unsigned char* ARRAY, unsigned int length)
{  
   int i;
   for (i=length-1;(i+1)>0;i--)
   {  SendChar(Digit1(ARRAY[i]));  // transmit digit 1
      SendChar(Digit0(ARRAY[i]));  // transmit digit 0
   }   
}

void SendChar(char ch)
{
      while ((U0IFG&UTXIFG0)==0);// wait till TX buf empty    
      TXBUF0=ch;                 // transmit ch
}

int Digit0(unsigned char Register)         // return LSB nibble (digit 0)
{  int result;

   result = Hex2ASCII(0x0F & Register);
   return result;
}

int Digit1(unsigned char Register)         // return nibble (digit 1)
{  int result;

   result = Register >> 4;
   result = Hex2ASCII(0x0F & result);
   return result;
}

int Hex2ASCII(int hex)        // hexadecimal to ASCII conversion
{  int result;

   if (hex<=9) 
   {  result=hex+'0'; }       // convert number
   else
   {  result=hex+('A'-10); }  // convert letter 
   
   return result;
}


//;--------------------------------------------------------------
//; This routine processes a received UART Command
void Process_UART(void)
{
  if (UART_Status & LineReceived)
  {
     //UARTSet
     switch (UART_RX_Buffer[0])
     {
       case 's':
       //SetClock
         switch (UART_RX_Buffer[1])
         {
           case 'h':
               HOUR = GetNumber(&UART_RX_Buffer[2]);
             break;
           case 'm':
               MIN = GetNumber(&UART_RX_Buffer[2]);
             break;
           case 's':
               SEC = GetNumber(&UART_RX_Buffer[2]);
             break;
           default:
             break;
         }           
         break;
#ifdef withDisplay
       case 'd':
       //SetDisplay_Mode
           Display_Mode = GetNumber(&UART_RX_Buffer[1]);
         break;
#endif // withDisplay
       case 'h':
       //send help text
              SendString(txt_help);
         break;
       case 't':
       //SetTX_Mode
           TX_Mode = GetNumber(&UART_RX_Buffer[1]);
         break;
       case 'r':
           WDTCTL =0;  // Generate WDT violation Reset
         break;
       case 'm':
       //SetMeasureMode
            TX_Mode = 0; //                  ; Clear running TX_Mode
            OP_Mode = request_cal;
            CalCyclCnt = 50*GetNumber(&UART_RX_Buffer[1]);    // Set Cycles
         break;
       case 'i':
       //Init
            _DINT(); // Disable Interrupts
            WDTCTL = WDTPW + WDTHOLD;             // Stop WDT
            // Init Digital Hardware
            init_system();
            // Init. FLL and clocks  
            init_fll(10, defSystemFreq, 32);   
           // Init. analog front-end (sigma-delta ADC)
            init_analog_front_end();
            // Init. Embedded Signal Processing parameters
            init_esp_parameter(1);
            // Init. event generation and start measurement
            start_measurement();
            _EINT(); // Enable Interrupts
         break;
#ifdef withCalibration
       case '+':
            CalPlus();
         break;
       case '-':
            CalMinus();
         break;
       case 'c':
       //Set Calibratoin mode
         {
            unsigned char Cal_Mode;

            static char strbuf[20];

            Cal_Mode = GetNumber(&UART_RX_Buffer[1]);
            if (Cal_Mode == 0) 
            { 
               SendString("Start Calibration : expecting 230V / 10A / cosPhi = 0.5: \r"); 
               
               SendString("Old Data : \r");
               sprintf(strbuf, "%ld",(long) (s_parameters.VRatio*1000)); SendString(strbuf); SendChar('\r'); 
               sprintf(strbuf, "%ld",(long) (s_parameters.IRatio*1000)); SendString(strbuf); SendChar('\r'); 
               sprintf(strbuf, "%ld",(long) (s_parameters.EnergyRatio*1000)); SendString(strbuf); SendChar('\r'); 
               sprintf(strbuf, "%ld",(long) s_parameters.pSET_PHASECORR1); SendString(strbuf); SendChar('\r'); 
               sprintf(strbuf, "%ld",(long) s_parameters.pSET_PHASECORR2); SendString(strbuf); SendChar('\r'); 
               //host_decu32((long) (s_parameters.VRatio*1000)); SendChar('\r'); 
               //host_decu32((long) (s_parameters.IRatio*1000)); SendChar('\r'); 
               //host_decu32((long) (s_parameters.EnergieRatio*1000)); SendChar('\r'); 
               //host_decu32((long) s_parameters.pSET_PHASECORR1); SendChar('\r'); 
               //host_decu32((long) s_parameters.pSET_PHASECORR2); SendChar('\r'); 
            }

            CalMode(Cal_Mode);
  
            if (Cal_Mode == 0) 
            { 
               SendString("Calibration Done\r"); 
               SendString("New Data : \r");
               sprintf(strbuf, "%ld",(long) (s_parameters.VRatio*1000)); SendString(strbuf); SendChar('\r'); 
               sprintf(strbuf, "%ld",(long) (s_parameters.IRatio*1000)); SendString(strbuf); SendChar('\r'); 
               sprintf(strbuf, "%ld",(long) (s_parameters.EnergyRatio*1000)); SendString(strbuf); SendChar('\r'); 
               sprintf(strbuf, "%ld",(long) s_parameters.pSET_PHASECORR1); SendString(strbuf); SendChar('\r'); 
               sprintf(strbuf, "%ld",(long) s_parameters.pSET_PHASECORR2); SendString(strbuf); SendChar('\r'); 
               //host_decu32((long) (s_parameters.VRatio*1000)); SendChar('\r'); 
               //host_decu32((long) (s_parameters.IRatio*1000)); SendChar('\r'); 
               //host_decu32((long) (s_parameters.EnergieRatio*1000)); SendChar('\r'); 
               //host_decu32((long) s_parameters.pSET_PHASECORR1); SendChar('\r'); 
               //host_decu32((long) s_parameters.pSET_PHASECORR2); SendChar('\r'); 
            }
            if (Cal_Mode == 4) { SendString("Parameters saved\r"); }
         }
         break;
#endif // withCalibration

     }

    UART_Status &= ~LineReceived;
    UART_RX_Bytes = 0;
  }
}
//No_Process_Uart
//        ret

#endif // withUARTComm

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产成人精品| 7777精品久久久大香线蕉| 国产亚洲午夜高清国产拍精品| 青娱乐精品视频在线| 91精品欧美福利在线观看| 麻豆91在线观看| 久久久久国色av免费看影院| 成人激情开心网| 亚洲精品视频一区二区| 欧美精品乱人伦久久久久久| 日本欧美在线观看| 久久久国产综合精品女国产盗摄| 成人精品国产福利| 一区二区三区不卡在线观看 | heyzo一本久久综合| 亚洲视频1区2区| 7777精品伊人久久久大香线蕉经典版下载 | 美脚の诱脚舐め脚责91| 久久久久亚洲蜜桃| av电影在线不卡| 免费在线看成人av| 国产精品欧美久久久久无广告 | 国产精品人妖ts系列视频| 日本乱码高清不卡字幕| 欧美aaaaaa午夜精品| 中文字幕乱码日本亚洲一区二区| 91精品办公室少妇高潮对白| 美日韩黄色大片| 亚洲蜜臀av乱码久久精品蜜桃| 91精品国产综合久久精品| 国产成人精品一区二| 婷婷综合五月天| 中文字幕在线观看不卡视频| 欧美一级高清片| 91福利在线观看| 国产精品一二二区| 亚洲第一成年网| 中文字幕在线不卡一区二区三区| 欧美一级理论片| 91久久精品一区二区| 国产一二三精品| 免费观看久久久4p| 一区二区在线观看不卡| 久久久综合精品| 日韩精品一区二区三区视频播放 | 欧美乱妇一区二区三区不卡视频| 国产成a人无v码亚洲福利| 午夜精品免费在线| 综合色天天鬼久久鬼色| 欧美变态tickle挠乳网站| 欧美精品九九99久久| 色婷婷av一区二区三区大白胸| 国产永久精品大片wwwapp| 日韩精品三区四区| 亚洲午夜免费福利视频| 18涩涩午夜精品.www| 国产蜜臀97一区二区三区| 精品久久国产字幕高潮| 91精品国产色综合久久不卡电影 | 一区二区三区四区不卡视频| 国产欧美日韩视频在线观看| 精品久久久久久久久久久院品网| 欧美一区二区性放荡片| 欧美日韩综合一区| 欧美日韩一区高清| 91高清视频在线| 欧美在线视频不卡| 在线这里只有精品| 欧美日韩在线免费视频| 欧美一a一片一级一片| 日本精品视频一区二区| 色偷偷一区二区三区| 91丨九色porny丨蝌蚪| jlzzjlzz国产精品久久| 91老司机福利 在线| 91蝌蚪porny| 日本二三区不卡| 欧美日韩成人综合天天影院| 欧美日韩黄色一区二区| 欧美一区二区在线观看| 精品av久久707| 久久麻豆一区二区| 国产精品天干天干在线综合| 国产精品婷婷午夜在线观看| 亚洲男人的天堂网| 亚洲韩国精品一区| 秋霞影院一区二区| 国产福利一区二区三区在线视频| 国产69精品久久777的优势| 99久久精品国产麻豆演员表| 91美女片黄在线观看| 欧美无砖砖区免费| 91精品国产一区二区| 久久久不卡网国产精品一区| 国产欧美一区二区精品性| 亚洲欧洲精品成人久久奇米网| 亚洲黄色小视频| 裸体歌舞表演一区二区| 国产成都精品91一区二区三| 在线这里只有精品| 欧美成va人片在线观看| 欧美极品xxx| 一区二区三区日韩欧美| 免费在线视频一区| 99久久精品费精品国产一区二区| 欧美三电影在线| 久久久久国产免费免费| 亚洲一区二区三区激情| 麻豆91在线观看| 色综合久久88色综合天天免费| 欧美猛男男办公室激情| 中文字幕第一页久久| 婷婷丁香久久五月婷婷| 国产成人在线视频免费播放| 在线观看av不卡| 久久久久亚洲蜜桃| 亚洲第一主播视频| 成人免费黄色大片| 欧美精品久久天天躁| 国产精品午夜免费| 久久综合综合久久综合| 色婷婷av一区| 国产日韩精品视频一区| 日日摸夜夜添夜夜添亚洲女人| 国产91综合一区在线观看| 欧美区在线观看| ㊣最新国产の精品bt伙计久久| 日本三级亚洲精品| 欧美亚洲国产一卡| 中文字幕不卡一区| 麻豆国产欧美一区二区三区| 日本久久一区二区三区| 国产精品视频免费| 精品在线播放免费| 欧美日韩高清不卡| 一区二区三区视频在线观看| 国产成人精品一区二区三区四区| 欧美老肥妇做.爰bbww视频| ...中文天堂在线一区| 国产一区二区三区香蕉| 日韩午夜在线影院| 亚洲r级在线视频| 色偷偷88欧美精品久久久| 中文字幕精品三区| 国模无码大尺度一区二区三区| 欧美日本一区二区三区| 亚洲欧美福利一区二区| 成人黄页在线观看| 久久久精品天堂| 极品销魂美女一区二区三区| 欧美日韩久久不卡| 亚洲午夜精品17c| 日本久久一区二区| 亚洲精品欧美在线| 色婷婷久久久综合中文字幕| 国产精品福利一区| 成人h动漫精品一区二| 国产欧美日韩在线| 成人av小说网| 国产精品理论在线观看| 成人av网站免费| 国产精品久久久久毛片软件| 春色校园综合激情亚洲| 国产精品三级av在线播放| 国产精品一区二区在线播放 | av电影在线观看不卡| 亚洲女同一区二区| 在线精品视频一区二区三四| 尤物av一区二区| 欧美乱熟臀69xxxxxx| 免费在线成人网| 精品毛片乱码1区2区3区| 精品在线播放午夜| 国产午夜精品理论片a级大结局| 国产一区二区三区在线观看免费视频 | 日韩精品免费视频人成| 欧美精品一二三区| 麻豆一区二区在线| 久久亚洲综合色一区二区三区| 国产老肥熟一区二区三区| 日本一区二区三级电影在线观看| 国产xxx精品视频大全| 中文字幕一区二区三区四区不卡| 91猫先生在线| 午夜精品在线看| 精品国产乱子伦一区| 国产成人av一区二区三区在线观看| 国产欧美日韩久久| 91麻豆蜜桃一区二区三区| 亚洲成a人片综合在线| 日韩一级免费一区| 国产福利一区在线| 一区二区三区高清| 精品国产一区二区三区久久久蜜月 | 欧美一级欧美三级在线观看| 黑人精品欧美一区二区蜜桃| 国产精品久久久久久久久久久免费看| 91福利小视频| 国产一区日韩二区欧美三区| 一色桃子久久精品亚洲|