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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fet140_adc12_3.c

?? 常用子程序-61個(gè)-4.2M.zip
?? C
字號(hào):
//**************************************************************************
//* 
//*   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;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线一区观看| 欧美一区二区三区视频在线观看 | 天天综合日日夜夜精品| ㊣最新国产の精品bt伙计久久| www国产精品av| 久久久影视传媒| 欧美精品一区二区三区蜜桃| 欧美哺乳videos| 精品国产乱码久久久久久蜜臀 | 欧美电影免费观看高清完整版在| 欧美猛男男办公室激情| 欧美久久久久久蜜桃| 欧美精品视频www在线观看| 欧美日韩国产不卡| 欧美一区二区三区男人的天堂| 日韩一区二区在线观看| 日韩欧美国产不卡| 久久久亚洲精品一区二区三区| 亚洲精品一线二线三线| 中文欧美字幕免费| 亚洲三级久久久| 午夜av一区二区三区| 免费日本视频一区| 国产一区二区免费看| 不卡的av在线播放| 在线观看亚洲精品视频| 日韩一区二区视频| 久久免费电影网| 亚洲欧洲无码一区二区三区| 亚洲福利视频一区| 精品一区二区三区香蕉蜜桃| 国产成人99久久亚洲综合精品| 国产aⅴ综合色| 欧美婷婷六月丁香综合色| 91精品国产麻豆国产自产在线| 精品国产不卡一区二区三区| 中文av字幕一区| 亚洲成人久久影院| 国产乱码一区二区三区| 91片黄在线观看| 日韩欧美综合一区| 中文在线资源观看网站视频免费不卡| 亚洲日本在线a| 日本中文字幕一区| 丁香一区二区三区| 欧美日韩视频专区在线播放| 久久久久久久av麻豆果冻| 成人欧美一区二区三区黑人麻豆 | 亚洲婷婷国产精品电影人久久| 亚洲超碰精品一区二区| 国产乱子伦视频一区二区三区| 91丨九色丨黑人外教| 日韩西西人体444www| 中文字幕亚洲综合久久菠萝蜜| 婷婷久久综合九色国产成人| 成人蜜臀av电影| 日韩一区二区在线观看视频播放| 一区免费观看视频| 九九**精品视频免费播放| 91亚洲国产成人精品一区二区三 | 视频在线观看国产精品| 99久久久久久| 欧美电影免费提供在线观看| 亚洲精品写真福利| 国产成人在线视频网址| 欧美电影在哪看比较好| 综合欧美一区二区三区| 久久99热狠狠色一区二区| 欧美亚洲国产一区在线观看网站 | 天天影视色香欲综合网老头| 成人美女在线观看| 久久综合久久久久88| 亚洲va中文字幕| 色婷婷久久一区二区三区麻豆| 久久久亚洲精品石原莉奈| 日日骚欧美日韩| 在线一区二区三区四区五区 | 久久你懂得1024| 免费观看30秒视频久久| 精品视频一区二区三区免费| 成人欧美一区二区三区| 粉嫩在线一区二区三区视频| 日韩精品专区在线影院重磅| 亚洲1区2区3区视频| 色婷婷国产精品久久包臀| 欧美激情在线一区二区三区| 久国产精品韩国三级视频| 在线综合+亚洲+欧美中文字幕| 亚洲精品一二三四区| 99久免费精品视频在线观看| 久久免费视频一区| 精品一区二区精品| 日韩一区二区三区在线| 日韩精品午夜视频| 欧美日韩一区二区在线视频| 一区二区三区四区视频精品免费| www.av精品| 国产精品国产三级国产a| 成人理论电影网| 国产精品麻豆视频| www.亚洲国产| 最新中文字幕一区二区三区| 99视频在线观看一区三区| 国产精品家庭影院| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美videos大乳护士334| 麻豆成人综合网| 精品精品国产高清一毛片一天堂| 看国产成人h片视频| 日韩精品一区二区三区在线播放| 美腿丝袜亚洲三区| 日韩精品一区二区三区中文不卡| 激情图片小说一区| 国产亚洲视频系列| 成人国产精品免费网站| 亚洲桃色在线一区| 欧洲精品在线观看| 日韩精品福利网| 日韩你懂的在线观看| 国产乱码精品一区二区三区五月婷 | 91精品免费观看| 极品少妇一区二区三区精品视频| 久久亚洲一区二区三区明星换脸| 国产福利一区二区三区在线视频| 国产精品久久久久三级| 在线观看视频一区| 日日嗨av一区二区三区四区| 日韩欧美国产1| 粉嫩蜜臀av国产精品网站| 亚洲天天做日日做天天谢日日欢 | 精品国产乱码久久久久久老虎| 韩国中文字幕2020精品| 欧美国产综合一区二区| 色就色 综合激情| 日韩制服丝袜av| 国产欧美精品一区二区色综合| 91视频国产资源| 毛片av一区二区| 国产精品国产三级国产aⅴ无密码| 欧美在线视频全部完| 久久精品国产免费看久久精品| 国产视频一区二区在线观看| 一本到不卡免费一区二区| 奇米一区二区三区av| 国产精品国产三级国产aⅴ无密码| 欧美日韩久久不卡| 国产成人av网站| 偷拍亚洲欧洲综合| 日本一区二区三区国色天香| 91久久国产最好的精华液| 精彩视频一区二区| 亚洲美腿欧美偷拍| 精品久久久网站| 91猫先生在线| 韩国精品在线观看| 亚洲国产va精品久久久不卡综合| 欧美精品一区二区三区很污很色的| 99天天综合性| 韩国在线一区二区| 亚洲第一主播视频| 国产精品亲子伦对白| 欧美一级二级三级乱码| 日本道精品一区二区三区| 国内一区二区在线| 五月天网站亚洲| 国产精品污污网站在线观看| 欧美精品777| 一本久久综合亚洲鲁鲁五月天| 精品一区二区三区久久久| 亚洲国产精品一区二区久久恐怖片| 国产视频一区二区在线| 91精品国产色综合久久不卡电影| jizzjizzjizz欧美| 国产在线一区观看| 热久久免费视频| 亚洲成人自拍偷拍| 亚洲天堂免费看| 国产婷婷色一区二区三区| 日韩欧美成人激情| 7799精品视频| 欧美日韩精品一区二区天天拍小说| 成人黄页毛片网站| 国产一区二区影院| 日本免费新一区视频| 艳妇臀荡乳欲伦亚洲一区| 日本一区二区电影| 欧美精品一区二区三| 777亚洲妇女| 欧美人动与zoxxxx乱| 色婷婷av一区二区三区软件| 高清国产一区二区| 国产伦精品一区二区三区在线观看| 免费观看在线综合| 日韩av中文在线观看| 午夜成人免费视频| 日韩高清在线不卡| 图片区小说区区亚洲影院| 亚洲电影视频在线| 洋洋成人永久网站入口| 亚洲综合无码一区二区|