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

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

?? fet140_adc12_3.c

?? 常用子程序-61個-4.2M.rar
?? C
字號:
//**************************************************************************
//* 
//*   ADC12 Test Program for MSP430F149                      HeCh, 29.05.00
//* 
//*   This program uses ADC interrupts. As soon as a conversion is 
//*   finished an interrupt is generated. The transmission of the 
//*   conversion result is initiated in the Interrupt Service Routine.
//*   The conversion is triggered by the ADC12SC bit in the ADC12CLT1
//*   control register. As soon as this bit is set the sample&hold
//*   is started. The conversion is started automatical. One single
//*   sequence of channels (A0...A15) is converted. After the conversion
//*   of channel A15 and a wait loop the next conversion of a sequence 
//*   is triggered by setting again the ADC12SC bit.
//*
//*   If a conversion is finished an interrupt is generated and in the
//*   interrupt service routine the transmission of the conversion 
//*   result via the USART module is initiatd:
//*   ADC12MEM0 contains the input A0 conversion result,
//*   ADC12MEM1 contains the input A1 conversion result, and so on.
//*
//*   USART Settings:   4800 baud, 8 data bits, even parity, 1 stop bit
//* 
//**************************************************************************

#include "MSP430x14x.h"     // Standard Definition Control Register

#define ADCMEM ((int*) 0x0140)  // ADC12MEMx definition
//--------------------------------------------------------------------------
void Init(void);          // Initialization of System/Control Registers
void SendText(char Text[15]); // string is transmitted via RS232 
void SendADCMem(int MemX); // conversion result of ADCMemX is sent via RS232
int Digit0(int Register); // LSB nibble (digit 0) of Register is sent back
int Digit1(int Register); // middle nibble (digit 1) of Register is sent back
int Digit2(int Register); // MSB nibble (digit 2) of Register is sent back
int Hex2ASCII(int hex);   // conversion of hexadecimal number into ASCII
//--------------------------------------------------------------------------

void main(void)
{   unsigned int wait;

    Init();        // Initialization

    _EINT();       // enable global interrupts

    while (1)
    {  ADC12CTL0 |= 0x01;                // start sampling (trigger signal)
       for (wait=0;wait<=60000;wait++);  // wait loop
    }
}


void Init(void)
{    WDTCTL = WDTPW + WDTHOLD;        // Stop watchdog timer

/* USART Settings:
      UART function, Idle line multiprocessor Protocol,
      4800 baud, 8 data bits, even parity, 1 stop bit   */
     UCTL1 &=~ SWRST;          // reset SWRST bit
     UCTL1 = 0xD0;  
     UBR01 = 0x06;  
     UBR11 = 0x00;  
     UMCTL1 = 0x6F; 
     UTCTL1 = 0x10; 
     URCTL1 = 0x00;    
     ME2 |= 0x20;              // enable USART transmit

     P3SEL = 0x40;             // Pin P3.6 used by USART module
     P3DIR = 0x40;             // Pin P3.6 is output

/* ADC12 Settings: */     
     P6SEL = 0xFF;         // Pin P6 used by ADC module

     ADC12CTL0 &=~ 0x02;   // Disable conversion before changing
                           // the ADC12 settings!!!
                        /* selection of reference and input */
     ADC12MCTL0  = 0x00;    // Ref = AVss, AVcc; Input = A0
     ADC12MCTL1  = 0x01;    // Ref = AVss, AVcc; Input = A1
     ADC12MCTL2  = 0x02;    // Ref = AVss, AVcc; Input = A2
     ADC12MCTL3  = 0x03;    // Ref = AVss, AVcc; Input = A3          
     ADC12MCTL4  = 0x04;    // Ref = AVss, AVcc; Input = A4
     ADC12MCTL5  = 0x05;    // Ref = AVss, AVcc; Input = A5
     ADC12MCTL6  = 0x06;    // Ref = AVss, AVcc; Input = A6
     ADC12MCTL7  = 0x07;    // Ref = AVss, AVcc; Input = A7
     ADC12MCTL8  = 0x08;    // Ref = AVss, AVcc; Input = A8
     ADC12MCTL9  = 0x09;    // Ref = AVss, AVcc; Input = A9
     ADC12MCTL10 = 0x0A;    // Ref = AVss, AVcc; Input = A10
     ADC12MCTL11 = 0x0B;    // Ref = AVss, AVcc; Input = A11
     ADC12MCTL12 = 0x0C;    // Ref = AVss, AVcc; Input = A12
     ADC12MCTL13 = 0x0D;    // Ref = AVss, AVcc; Input = A13
     ADC12MCTL14 = 0x0E;    // Ref = AVss, AVcc; Input = A14
     ADC12MCTL15 = 0x8F;    // Ref = AVss, AVcc; Input = A15
                            // ADC12MCTL15 is end of sequence 
                            // (EOS bit is set!)

     ADC12CTL1 = 0x0202;    // first conv. result is stored in ADC12MEM0
                            // ADC12SC bit triggers Sample&Hold
                            // sample pulse is generated by Sampling Timer
                            // Clock Source: ADC12 internal oscillator
                            // Clock divider: 1
                            // conversion mode: one single sequence

     ADC12CTL0 = 0x009C;    // Sample&Hold Time 0
                            // Sample&Hold Time 1 
                            // Multiple Sample&Hold 
                            // reference voltage is off
                            // ADC12 module is switched on 
                            // Conversion Time Overflow interrupt enabled
                            // Overflow Interrupt enabled 

     ADC12IE = 0xFFFF;      // enable all ADC interrupts
     ADC12CTL0 |= 0x02;     // enable conversion
}



interrupt [ADC_VECTOR] void ADC12(void)   // ADC INTERRUPT HANDLER
{  char overflow[14]="Overflow!\r\0";
   char timing[21]="Timing!\r\0";

   switch (ADC12IV)
   {  case 0x00:      // No interrupt
               break;
      case 0x02:      // ADC overflow
               SendText(overflow);
               break;
      case 0x04:      // ADC timing overflow
               SendText(timing);
               break;
      case 0x06:      // ADC12MEM0 was loaded (ADC12IFG.0)
               SendADCMem(0);
               break;
      case 0x08:      // ADC12MEM1 was loaded (ADC12IFG.1)
               SendADCMem(1);
               break;
      case 0x0A:     // ADC12MEM2 was loaded (ADC12IFG.2)
               SendADCMem(2);
               break;
      case 0x0C:     // ADC12MEM3 was loaded (ADC12IFG.3)
               SendADCMem(3);
               break;
      case 0x0E:     // ADC12MEM4 was loaded (ADC12IFG.4)
               SendADCMem(4);
               break;
      case 0x10:     // ADC12MEM5 was loaded (ADC12IFG.5)
               SendADCMem(5);
               break;
      case 0x12:     // ADC12MEM6 was loaded (ADC12IFG.6)
               SendADCMem(6);
               break;
      case 0x14:     // ADC12MEM7 was loaded (ADC12IFG.7)
               SendADCMem(7);
               break;
      case 0x16:     // ADC12MEM8 was loaded (ADC12IFG.8)
               SendADCMem(8);
               break;
      case 0x18:     // ADC12MEM9 was loaded (ADC12IFG.9)
               SendADCMem(9);
               break;
      case 0x1A:     // ADC12MEM10 was loaded (ADC12IFG.10)
               SendADCMem(10);
               break;
      case 0x1C:     // ADC12MEM11 was loaded (ADC12IFG.11)
               SendADCMem(11);
               break;
      case 0x1E:     // ADC12MEM12 was loaded (ADC12IFG.12)
               SendADCMem(12);
               break;
      case 0x20:     // ADC12MEM13 was loaded (ADC12IFG.13)
               SendADCMem(13);
               break;
      case 0x22:     // ADC12MEM14 was loaded (ADC12IFG.14)
               SendADCMem(14);
               break;
      case 0x24:     // ADC12MEM15 was loaded (ADC12IFG.15)
               SendADCMem(15);
               break;
   }
}

/**************************************************************************/
/***************     RS232    S U B R O U T I N E S   *********************/
/**************************************************************************/
void SendText(char Text[15])
{  int i;

   i=0;
   while (Text[i]!='\0')         // transmit string via RS232
   {  TXBUF1=Text[i++];
      while ((UTCTL1&0x01)==0);    
   }
}

void SendADCMem(int MemX)
{  char prompt1[7]="ADCMEM\0";
   char prompt2='>';
   
   SendText(prompt1);           // transmit "ADCMEM" via RS232

   TXBUF1=Hex2ASCII(MemX);
   while ((UTCTL1&0x01)==0);    

   TXBUF1=prompt2;               // transmit ">" via RS232
   while ((UTCTL1&0x01)==0);    

   TXBUF1='0';                   // transmit "0"
   while ((UTCTL1&0x01)==0);   
   TXBUF1=Digit2(ADCMEM[MemX]);  // transmit digit 2 of ADC12MEMx
   while ((UTCTL1&0x01)==0);   
   TXBUF1=Digit1(ADCMEM[MemX]);  // transmit digit 1 of ADC12MEMx
   while ((UTCTL1&0x01)==0);   
   TXBUF1=Digit0(ADCMEM[MemX]);  // transmit digit 0 of ADC12MEMx
   while ((UTCTL1&0x01)==0);    
   TXBUF1=13;                    // send carriage return
   while ((UTCTL1&0x01)==0);    
}

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

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

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

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

int Digit2(int Register)         // return MSB nibble (digit 2)
{  int result;

   result = Register >> 8;
   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;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜免费电影| 青青草国产精品97视觉盛宴| 亚洲一区二区三区自拍| 午夜a成v人精品| 国产在线视视频有精品| av在线不卡观看免费观看| 日本高清不卡一区| 欧美大度的电影原声| 国产精品久久久久婷婷| 亚洲一二三四在线观看| 黄色小说综合网站| 色系网站成人免费| 欧美岛国在线观看| 亚洲免费av网站| 青青草国产成人99久久| 成人av在线电影| 欧美放荡的少妇| 国产精品青草综合久久久久99| 一区二区三区精品视频在线| 国内外成人在线视频| 91黄色激情网站| 2014亚洲片线观看视频免费| 亚洲毛片av在线| 国产永久精品大片wwwapp| 色婷婷久久综合| 国产清纯白嫩初高生在线观看91| 一区二区三区国产精品| 国产精品一区三区| 欧美精品在线视频| 成人欧美一区二区三区视频网页| 天天综合网 天天综合色| 不卡一区二区三区四区| 日韩欧美高清在线| 亚洲自拍偷拍图区| 国产99一区视频免费| 欧美老肥妇做.爰bbww| 国产精品私房写真福利视频| 经典三级在线一区| 欧美日韩久久一区二区| 亚洲欧洲国产专区| 国产精品系列在线观看| 日韩一区二区电影网| 一卡二卡欧美日韩| jlzzjlzz欧美大全| 久久久国产精品不卡| 美女尤物国产一区| 777久久久精品| 亚洲成人免费在线| 欧美性色欧美a在线播放| 国产精品麻豆久久久| 国产成人啪免费观看软件 | 1024成人网色www| 国内精品伊人久久久久av影院| 欧美精品国产精品| 亚洲午夜视频在线观看| 91色porny| 亚洲免费观看在线观看| 91在线视频免费观看| 国产精品无码永久免费888| 国产福利一区在线| 欧美tickling网站挠脚心| 蜜臀久久99精品久久久久宅男 | 亚洲国产精品久久久久婷婷884| 成人小视频在线观看| 欧美精品一区二区三区四区 | 精品国产免费久久| 免费观看一级欧美片| 91麻豆精品国产91久久久久久| 亚洲午夜在线视频| 欧美日韩午夜在线| 午夜私人影院久久久久| 欧美天堂一区二区三区| 亚洲午夜免费视频| 欧美综合欧美视频| 午夜久久久久久| 91精品欧美综合在线观看最新 | 日韩欧美中文字幕公布| 蜜桃一区二区三区在线观看| 欧美不卡视频一区| 国产麻豆日韩欧美久久| 国产欧美日本一区二区三区| 高清免费成人av| 中文字幕中文字幕在线一区| 95精品视频在线| 一区二区欧美在线观看| 欧美日韩不卡一区| 麻豆91小视频| 国产日本一区二区| 不卡欧美aaaaa| 亚洲男同1069视频| 欧美日韩国产乱码电影| 久久不见久久见中文字幕免费| 久久久亚洲午夜电影| av中文字幕一区| 亚洲午夜在线视频| 精品欧美久久久| av网站免费线看精品| 亚洲一区二区在线观看视频| 欧美群妇大交群的观看方式| 奇米精品一区二区三区四区| 26uuu另类欧美| av不卡在线观看| 婷婷综合久久一区二区三区| 久久亚洲综合色| 91小视频免费观看| 丝瓜av网站精品一区二区| 欧美成人精精品一区二区频| 国产xxx精品视频大全| 亚洲日本在线视频观看| 欧美高清视频在线高清观看mv色露露十八 | 日日嗨av一区二区三区四区| 精品久久久三级丝袜| 99久久精品免费看国产免费软件| 亚洲一二三区在线观看| 日韩欧美不卡一区| 99在线精品观看| 日韩黄色免费电影| 国产欧美日产一区| 欧美精品777| av亚洲精华国产精华精华| 丝袜亚洲另类丝袜在线| 国产亚洲一区二区三区在线观看 | 亚洲欧美视频在线观看视频| 制服丝袜中文字幕一区| 9久草视频在线视频精品| 三级成人在线视频| 国产精品久久久久aaaa樱花| 欧美精品一卡二卡| 99久久精品久久久久久清纯| 日韩电影一二三区| 亚洲欧洲精品天堂一级 | 久久www免费人成看片高清| 《视频一区视频二区| 日韩亚洲欧美综合| 在线观看一区日韩| 国产乱子轮精品视频| 三级影片在线观看欧美日韩一区二区 | 日韩主播视频在线| 国产精品素人视频| 亚洲精品一区二区在线观看| 欧美视频你懂的| 91小视频免费观看| 国产精品一二三区在线| 五月激情综合色| 国产精品久久久久久久午夜片 | 韩国成人在线视频| 亚洲成人你懂的| 亚洲日本中文字幕区| 国产日韩精品一区二区三区| 欧美老肥妇做.爰bbww视频| 一本到不卡免费一区二区| 丁香激情综合国产| 九九视频精品免费| 亚洲成人先锋电影| 一区二区三区中文字幕| 国产精品欧美经典| 国产亚洲一区二区三区在线观看| 日韩欧美aaaaaa| 8v天堂国产在线一区二区| 在线观看日韩高清av| 不卡影院免费观看| 国产成人自拍高清视频在线免费播放 | 91啦中文在线观看| 成人美女视频在线看| 国产尤物一区二区| 久久国产精品一区二区| 免费在线一区观看| 三级成人在线视频| 石原莉奈一区二区三区在线观看| 亚洲精品综合在线| 亚洲天堂av一区| 国产精品久久久久久久裸模| 欧美国产精品专区| 国产欧美日韩精品一区| 国产精品网曝门| 国产精品久久久久久久久免费樱桃 | 亚洲精品写真福利| 亚洲天堂a在线| 亚洲精品成人在线| 樱花草国产18久久久久| 亚洲精品一二三区| 亚洲一区二区在线播放相泽| 亚洲精品v日韩精品| 一区二区在线观看不卡| 一区二区三区在线免费观看| 亚洲精品成人天堂一二三| 依依成人综合视频| 香蕉加勒比综合久久| 图片区日韩欧美亚洲| 午夜激情综合网| 日韩激情视频网站| 久久se这里有精品| 国产精品一二三在| thepron国产精品| 91蜜桃视频在线| 在线观看一区不卡| 欧美日本在线观看| 日韩美女主播在线视频一区二区三区| 欧美成人r级一区二区三区| 精品国产青草久久久久福利|