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

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

?? d169_vr.c

?? MSP430X16X子程序
?? C
字號(hào):
//*******************************************************************************
//  D169 Demo - Voice Recorder and Playback 
//
//  Uses the new DMA and DAC12 modules to perform autonomous speech recording
//  and playback. CPU runs from DCO at the default speed of ~800KHz.
//
//         MSP430F169
//   +--------------------+
//   |                    |
//   |               ADC0 +-------< input from mic pre-amplifier
//   |               DAC0 +-------> output to audio output stage
//   |               P1.0 +-------> LED #1
//   |               P1.1 +-------> LED #2
//   |               P1.3 +-------> input stage shutdown (0 = shutdown)
//   |               P1.4 +-------> output stage shutdown (1 = shutdown)
//   |               P1.6 +-------< KEY #1
//   |               P1.7 +-------< KEY #2
//   |               P6.2 +-------> charge pump snooze mode (0 = snooze)
//   |                    |
//
//
//  History: V1.01 (07/18/03)
//           - ADC12IFGx used as DMA trigger instead of Timer_B.CCIFG2
//           - lower sample rate for longer speech duration
//           V1.00 (07/15/03)
//           - initial release
//
//  A. Dannenberg
//  Texas Instruments Inc.
//  August 2003
//*******************************************************************************
#include <msp430x16x.h>
//------------------------------------------------------------------------------
#define Memstart             0x1400         // Memory range to be filled with
#define Memend               0xfe00         // Sampled data
// ATTN: Care must be taken not to conflict with memory used by the program
//       code. Also both addresses need to be integer multipliers of 0x0200
//       due to the flash memory segmenting.

#define SamplePrd            90             // Record&playback sample period
                                            // SampleR = 800,000 / SamplePrd

void Init_Sys(void);                        // Function prototypes
void Record(void); 
void Playback(void);
void Erase(void);
//-----------------------------------------------------------------------------
void main(void)
{
  Init_Sys();                               // Initialize system

  while (1)                                 // Repeat forever
  {
    // wait for key-press event, hold CPU in low-power mode
    P1IFG = 0;                              // Clear all P1.x interrupt flags
    P1IE |= 0xc0;                           // Enable int for buttons
    _BIS_SR(LPM3_bits + GIE);               // Enter LPM3 w/ interrupts
    _DINT();                                // Disable interrupts
    P1IE &= ~0xc0;                          // Disable interrupts for buttons

    // process key-press event
    if (!(P1IN & 0x40))                     // Record button pressed?
      Record();                             
    else                                    // No, -> must be playback button
      Playback();                           
  }
}
//-----------------------------------------------------------------------------
// Record audio data and store in Flash memory using ADC12 + DMA
//-----------------------------------------------------------------------------
void Record(void)
{
  // power-up external hardware
  P1OUT |= 0x09;                            // LED#1 & audio input stage on
  P6OUT |= 0x04;                            // Disable charge pump snooze mode
                  
  // setup modules
  ADC12IFG = 0x00;                          // 
  ADC12CTL1 = SHS_3 + CONSEQ_2;             // S&H TB.OUT1, rep. single chan
  ADC12CTL0 = ADC12ON + ENC;                // ADC12 on, enabled

  TBCCR0 = SamplePrd;                       // Initialize TBCCR0 w/ sample prd
  TBCCR1 = SamplePrd - 20;                  // Trigger for ADC12 SC
  TBCCTL1 = OUTMOD_7;                       // Reset OUT1 on EQU1, set on EQU0

  DMA0SA = ADC12MEM0_;                      // Src address = ADC12 module
  DMA0DA = Memstart;                        // Dst address = Flash memory
  DMA0SZ = (Memend - Memstart) >> 1;        // Size in words
  DMACTL0 = DMA0TSEL_6;                     // ADC12IFGx triggers DMA0
  DMA0CTL = DMADSTINCR_3 + DMAIE + DMAEN;   // Config

  // unlock and erase Flash memory
  FCTL3 = FWKEY;                            // Unlock Flash memory for write
  Erase();                                  // Call Flash erase subroutine
  FCTL1 = FWKEY + WRT;                      // Enable Flash write for recording
           
  // start recording and enter LPM
  P1OUT |= 0x01;                            // LED#1 on
  TBCTL = TBSSEL_2+ MC_1 + TBCLR ;          // SMCLK, clear TBR, up mode
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrups
  _DINT();                                  // Disable interrupts
  
  // deactivate Flash memory write access
  FCTL1 = FWKEY;                            // Disable Flash write
  FCTL3 = FWKEY + LOCK;                     // Lock Flash memory     
           
  // power-down MSP430 modules
  ADC12CTL1 &= ~CONSEQ_2;                   // Stop conversion immidiately
  ADC12CTL0 &= ~ENC;                        // Disable ADC12 conversion
  ADC12CTL0 = 0;                            // Switch off ADC12 & ref voltage
  TBCTL = 0;                                // Disable Timer_B
 
  // power-down external hardware
  P1OUT &= ~0x09;                           // Disable LED#1 & audio input stage
  P6OUT &= ~0x04;                           // Enable charge pump snooze mode
}
//-----------------------------------------------------------------------------           
// Playback audio data stored in Flash memory using the DMA and DAC12
//-----------------------------------------------------------------------------
void Playback(void)
{
  // power-up external hardware
  P1OUT = 0x02;                             // LED#2 on, enable audio outp
  P6OUT |= 0x04;                            // Disable charge pump snooze mode

  // setup modules
  ADC12CTL0 = REF2_5V + REFON;              // ADC12 ref needed for DAC12
  DAC12_0CTL = DAC12LSEL_3 + DAC12IR + DAC12AMP_7 + DAC12ENC; // config

  TBR = SamplePrd + 2;                      // Force delay of 64k for Vref  
  TBCCR0 = SamplePrd;                       // Initialize TBCCR0 w/ sample prd
  TBCCR2 = SamplePrd >> 1;                  // EQU2 will trigger DMA
  TBCCTL2 = OUTMOD_7;                       // Reset OUT2 on EQU2, set on EQU0

  DMA0SA = Memstart;                        // Src address = Flash memory
  DMA0DA = DAC12_0DAT_;                     // Dst address = DAC12 module
  DMA0SZ = (Memend - Memstart) >> 1;        // DMA block size
  DMACTL0 = DMA0TSEL_2;                     // Timer_B.CCIFG2 triggers DMA0
  DMA0CTL = DMASRCINCR_3 + DMAIE + DMAEN;   // Config

  // start playback and enter LPM
  TBCTL = TBSSEL_2 + MC0;                   // SMCLK, up mode
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrups
  _DINT();                                  // Disable interrupts
                                          
  // power-down MSP430 modules
  TBCTL = 0;                                // Disable Timer_B
  ADC12CTL0 = 0;                            // Switch off ADC12 ref voltage
  DAC12_0CTL &= ~DAC12ENC;                  // Disable DAC12 conversion
  DAC12_0CTL = 0;                           // Switch off DAC12
           
  // power-down external hardware
  P1OUT = 0x10;                             // LED#2 off, disable audio outp
  P6OUT &= ~0x04;                           // Enable charge pump snooze mode
}
//-----------------------------------------------------------------------------
// setup system and peripherals
//-----------------------------------------------------------------------------
void Init_Sys(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog

  P1OUT = 0x10;                             // LEDx off, disable audio outp/ inp
  P1DIR = 0x3f;                             // P1.6/P1.7 inp, all other outp
  P1IES = 0xc0;                             // H->L edge detect for buttons
  P2OUT = 0x00;                             // Clear P2 output register
  P2DIR = 0xff;                             // Unused pins as outp  
  P3OUT = 0x00;                             // Clear P3 output register
  P3DIR = 0xf5;                             // All but I2C pins to output
  P4OUT = 0x00;                             // Clear P4 output register
  P4DIR = 0xff;                             // Unused pins as outp  
  P5OUT = 0x00;                             // Clear P5 output register
  P5DIR = 0xff;                             // Unused pins as outp  
  P6OUT = 0x00;                             // Clear P6 output register
  P6SEL = 0x01;                             // Select ADC12 A0
  P6DIR = 0xff;                             // Unused pins as output
  
  FCTL2 = FWKEY + FSSEL_2 + FN0;            // Clk src = SMCLK / 2 (~440KHz)
}
//-----------------------------------------------------------------------------
// erase Flash memory for new recording
//-----------------------------------------------------------------------------
void Erase(void)
{
  unsigned int *pMemory = (unsigned int *)Memstart;
                                            // Start of record memory array
  do
  {
    if ((unsigned int)pMemory & 0x1000)     // Use bit 12 to toggle LED#1
      P1OUT |= 0x01;
    else
      P1OUT &= ~0x01;    
    
    FCTL1 = FWKEY + ERASE;
    *pMemory = 0x00;                        // Dummy write to activate
                                            // Segment erase
    pMemory += 0x0100;                      // Point to next segment
  } while (pMemory < (unsigned int *)Memend);
}  
//----------------------------------------------------------------------------
// PORT1 interrupt handler
//-----------------------------------------------------------------------------
interrupt[PORT1_VECTOR] void PORT1ISR(void)
{
  P1IFG = 0;                                // Clear all P1.x interrupt flags
  _BIC_SR_IRQ(LPM3_bits);                   // Exit LPM3 on reti
}
//-----------------------------------------------------------------------------
// DAC12, DMA interrupt handler
//-----------------------------------------------------------------------------
interrupt[DACDMA_VECTOR] void DACDMAISR(void)
{
  DMA0CTL &= ~DMAIFG;                       // Clear DMA0 interrupt flag
  _BIC_SR_IRQ(LPM0_bits);                   // Exit LPM0 on reti
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情小说欧美图片| 欧美人妇做爰xxxⅹ性高电影 | 国产·精品毛片| 韩国欧美一区二区| 国产美女av一区二区三区| 极品尤物av久久免费看| 国产精品一线二线三线精华| 国产乱人伦偷精品视频不卡| 国产在线观看一区二区| 国产精品一区二区果冻传媒| 国产成人精品免费在线| 大胆欧美人体老妇| 色婷婷一区二区| 欧美一a一片一级一片| 91.xcao| 欧美电影精品一区二区| xnxx国产精品| 中文字幕亚洲欧美在线不卡| 中文字幕一区二区三区不卡| 亚洲精品成人精品456| 亚洲chinese男男1069| 麻豆国产欧美一区二区三区| 国产麻豆精品视频| 成人免费高清视频| 91精品91久久久中77777| 欧美日韩国产色站一区二区三区| 91麻豆精品国产91久久久久久| 欧美一区二区在线免费播放| 亚洲精品一区在线观看| 中文一区二区完整视频在线观看| 亚洲免费观看在线观看| 日韩精彩视频在线观看| 国产在线精品免费| 99久精品国产| 欧美一卡二卡三卡| 国产精品免费久久久久| 亚洲午夜在线观看视频在线| 久久99精品久久久久久动态图| 国产成人综合亚洲网站| 日本道精品一区二区三区| 在线电影一区二区三区| 久久久蜜桃精品| 亚洲精品国产第一综合99久久| 日本特黄久久久高潮| 粉嫩蜜臀av国产精品网站| 欧美日韩国产一二三| 日本一区二区综合亚洲| 视频在线观看一区二区三区| 国产**成人网毛片九色| 欧美色综合影院| 久久久国产精品麻豆| 亚洲一区在线观看免费观看电影高清| 久久精品国产**网站演员| 一本大道av一区二区在线播放| 日韩一卡二卡三卡四卡| 亚洲欧美日韩精品久久久久| 国内精品伊人久久久久影院对白| 欧日韩精品视频| 国产亚洲成年网址在线观看| 欧美a一区二区| 91久久国产综合久久| 久久久久久久久伊人| 日韩中文字幕区一区有砖一区 | 欧美成人艳星乳罩| 亚洲精品你懂的| 国产91色综合久久免费分享| 欧美日韩中文国产| 亚洲日本免费电影| 高清shemale亚洲人妖| 日韩一区二区在线看片| 夜夜嗨av一区二区三区中文字幕 | 丁香婷婷综合激情五月色| 欧美年轻男男videosbes| 国产精品白丝在线| 国产一区二区视频在线| 欧美久久久久久蜜桃| 日韩美女啊v在线免费观看| 国产精品影视在线| 精品久久久久久最新网址| 日韩精品每日更新| 欧美亚州韩日在线看免费版国语版| 国产情人综合久久777777| 久久国产夜色精品鲁鲁99| 5566中文字幕一区二区电影| 一区二区高清视频在线观看| 成人高清免费观看| 国产亚洲欧美色| 国产在线精品一区二区夜色 | 日韩国产精品久久久| 在线视频你懂得一区| 国产精品国产三级国产有无不卡 | 免费在线观看一区二区三区| 欧美在线一区二区| 一区二区在线观看免费| 91日韩在线专区| 亚洲手机成人高清视频| av影院午夜一区| 中文字幕一区二区三区蜜月| 成人黄色在线看| 国产精品视频观看| 成人听书哪个软件好| 国产农村妇女精品| 成人免费视频一区二区| 中文字幕第一区第二区| 国产aⅴ精品一区二区三区色成熟| 久久久99久久| 成人激情免费电影网址| 亚洲视频网在线直播| 91一区一区三区| 一级精品视频在线观看宜春院| 色欧美88888久久久久久影院| 亚洲欧美怡红院| 色综合久久久久| 亚洲国产欧美一区二区三区丁香婷| 日本黄色一区二区| 五月婷婷激情综合| 欧美一级高清大全免费观看| 亚洲第一福利一区| 欧美日韩一二三区| 免费在线观看不卡| 久久蜜桃香蕉精品一区二区三区| 国产一区二区三区日韩| 日本一区二区电影| 99久久er热在这里只有精品15 | 亚洲一区自拍偷拍| 这里只有精品电影| 精品一二三四区| 国产精品毛片高清在线完整版| av在线播放成人| 亚洲不卡av一区二区三区| 欧美老肥妇做.爰bbww视频| 麻豆成人免费电影| 日本一区二区三区视频视频| 色网综合在线观看| 麻豆91免费观看| 中文av一区二区| 在线影院国内精品| 国产综合一区二区| 亚洲欧洲制服丝袜| 宅男在线国产精品| 国产a精品视频| 亚洲h精品动漫在线观看| 久久久久国产免费免费 | 综合激情网...| 制服.丝袜.亚洲.另类.中文| 国产激情偷乱视频一区二区三区| 亚洲精品国产一区二区精华液| 欧美一级午夜免费电影| 成人毛片在线观看| 婷婷亚洲久悠悠色悠在线播放| 久久一夜天堂av一区二区三区 | 亚洲欧美激情插| 日韩色在线观看| 91丨九色丨蝌蚪富婆spa| 日韩影院精彩在线| 亚洲视频资源在线| 欧美mv和日韩mv的网站| 一本一本久久a久久精品综合麻豆| 久久精品国产77777蜜臀| 有码一区二区三区| 2020日本不卡一区二区视频| 91国偷自产一区二区三区观看| 国产在线麻豆精品观看| 亚洲午夜激情网站| 亚洲国产成人自拍| 欧美va日韩va| 欧美日韩国产经典色站一区二区三区| 国产成人一区在线| 蜜桃视频第一区免费观看| 亚洲天堂av一区| 久久久精品黄色| 日韩欧美精品三级| 欧美日本一区二区三区| 不卡的av网站| 国产美女在线观看一区| 丝袜亚洲另类欧美| 亚洲欧美一区二区三区国产精品 | 国产欧美一区在线| 欧美一区二区免费视频| 在线精品视频免费播放| 成人av先锋影音| 国产一区二区三区免费| 日韩vs国产vs欧美| 洋洋av久久久久久久一区| 欧美韩日一区二区三区四区| 精品欧美乱码久久久久久| 在线成人av影院| 精品视频在线免费| 在线亚洲一区二区| av福利精品导航| 成人综合在线网站| 高清av一区二区| 国产精品456露脸| 国产自产2019最新不卡| 国产资源精品在线观看| 国内精品在线播放| 国产麻豆视频一区二区| 国产美女娇喘av呻吟久久| 国产裸体歌舞团一区二区| 激情综合网最新|