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

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

?? d169_vr_a.c

?? MSP430X16X子程序
?? C
字號:
//*******************************************************************************
//  D169 Demo - Voice Recorder and Playback with 8-bit Compression
//
//  Uses the new DMA and DAC12 modules to perform autonomous speech recording
//  and playback. CPU runs from DCO at the default speed of ~800KHz. Using two
//  DMA channels, the 12-bit data sampled from ADC12 is first converted to 
//  8-bits using DMA0 and the hardware multiplier, then saved to Flash
//  using DMA1. Playback is using the DAC0 in 8-bit Mode.
//
//
//   +--------------------+
//   |                    |
//   |               ADC0 +-------< input from mic pre-amplifier
//   |               DAC0 +-------> output to audio output stage
//   |               P1.0 +-------> LED #1
//   |               P1.1 +-------> LED #2
//   |  MSP430F169   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)
//   |                    |
//   +--------------------+
//
//
//  M. Buccini
//  Texas Instruments Inc.
//  August 2003
//  Built with IAR Embedded Workbench Version: 1.26B
//*******************************************************************************
#include <msp430x16x.h>
//------------------------------------------------------------------------------
#define Memstart             0x1400         // Memory range to be filled with
#define Memend               0xfe00         // Sampled data

#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 &= ~0xc0;                         // Clear all button 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 using the ADC12, DMA and MPY
//-----------------------------------------------------------------------------
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
  TBCCR2 = SamplePrd - 5;                   // Trigger for DMA1
  TBCCTL1 = OUTMOD_7;                       // Reset OUT1 on EQU1, set on EQU0

  DMA0SA = ADC12MEM0_;                      // Src address = ADC12 module
  DMA0DA = OP2_;                            // Dst address = multiplier
  DMA0SZ = 1;                               // Size in words
  DMACTL0 = DMA1TSEL_2 + DMA0TSEL_6;        // DMA1=TBCCR2_IFG, DMA0=ADC12IFGx
  DMA0CTL = DMADT_4 + DMAEN;                // Sng rpt, config

  DMA1SA = RESHI_;                          // Src address = multiplier
  DMA1DA = Memstart;                        // Dst address = Flash memory
  DMA1SZ = (Memend - Memstart);             // Size in bytes
  DMA1CTL = DMADSTINCR_3 + DMASBDB + DMAIE + DMAEN;   // Sng, config

  MPY = 0x0FFF;                             // MPY first operand
  
  // 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
  DMA0CTL &= ~DMAEN;                        // Disable
  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 module
//-----------------------------------------------------------------------------
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 = DAC12RES + 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

  DMA1SA = Memstart;                        // Src address = Flash memory
  DMA1DA = DAC12_0DAT_;                     // Dst address = DAC12 module
  DMA0SZ = (Memend - Memstart);             // DMA block size in bytes
  DMACTL0 = DMA1TSEL_2;                     // Timer_B.CCIFG2 triggers DMA1
  DMA1CTL = DMASRCINCR_3 + DMASBDB + 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)
{
  DMA1CTL &= ~DMAIFG;                       // Clear DMA1 interrupt flag
  _BIC_SR_IRQ(LPM0_bits);                   // Exit LPM0 on reti
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩1234| 亚洲午夜一区二区| 亚洲精品一区二区三区四区高清| 欧美亚洲禁片免费| 欧美网站大全在线观看| 色综合久久久久| 91国偷自产一区二区三区成为亚洲经典| 成人av在线看| 91女厕偷拍女厕偷拍高清| 97久久精品人人做人人爽50路| 成+人+亚洲+综合天堂| 播五月开心婷婷综合| 成人av电影免费观看| 91一区二区在线观看| 91啪亚洲精品| 欧美三级中文字| 日韩亚洲欧美在线| 久久久久久久国产精品影院| 国产三级久久久| 中文字幕一区二| 一区二区三区中文在线观看| 洋洋成人永久网站入口| 日日骚欧美日韩| 麻豆久久一区二区| 国产激情偷乱视频一区二区三区 | 成人午夜视频免费看| 波多野结衣91| 欧洲在线/亚洲| 欧美一区二区三区免费| 久久一二三国产| 国产精品久久久久久久久快鸭| 亚洲三级免费观看| 日韩精品一二三区| 国产精品一级片| 91欧美一区二区| 欧美欧美欧美欧美| ww久久中文字幕| 亚洲日本在线a| 免费在线视频一区| 成人av资源网站| 欧美片网站yy| 日本一二三不卡| 亚洲小说欧美激情另类| 蜜桃视频第一区免费观看| 成人一区二区三区视频在线观看| 在线免费不卡电影| 久久久久久夜精品精品免费| 综合婷婷亚洲小说| 午夜a成v人精品| 成人综合日日夜夜| 欧美一区二区视频在线观看2022| 欧美激情在线观看视频免费| 婷婷综合另类小说色区| 成人综合婷婷国产精品久久| 欧美人与性动xxxx| 国产精品人成在线观看免费| 午夜不卡av在线| 成人av资源在线观看| 欧美一区二区三区四区久久| 中文字幕佐山爱一区二区免费| 麻豆专区一区二区三区四区五区| 91丨九色丨黑人外教| 精品999久久久| 亚洲午夜在线视频| 成人综合在线观看| 欧美成人精品二区三区99精品| 亚洲欧美日韩国产成人精品影院| 国产自产v一区二区三区c| 在线亚洲+欧美+日本专区| 久久久久久久久久看片| 五月综合激情网| 91视频国产观看| 亚洲国产精品传媒在线观看| 麻豆专区一区二区三区四区五区| 在线精品亚洲一区二区不卡| 国产精品久久久久久久第一福利 | 久久国产精品99精品国产| 色视频成人在线观看免| 国产日韩欧美精品电影三级在线| 日韩黄色在线观看| 欧美色爱综合网| 亚洲蜜臀av乱码久久精品| 国产成人在线视频网站| 欧美刺激午夜性久久久久久久| 亚洲一二三四久久| 99久久亚洲一区二区三区青草| 精品国产乱码久久久久久闺蜜| 亚洲成av人片一区二区三区| 色综合久久天天综合网| 国产女人aaa级久久久级| 国产在线观看一区二区| 日韩午夜电影在线观看| 午夜伊人狠狠久久| 在线视频综合导航| 一区二区三区日韩欧美| 91免费观看国产| 久久精品日韩一区二区三区| 久久精品99国产精品| 精品美女被调教视频大全网站| 精品国产免费视频| 日韩一区欧美二区| 欧美日韩国产一级片| 亚洲欧美日韩一区二区| 91香蕉视频污| 亚洲色大成网站www久久九九| 成人av免费网站| 国产精品第13页| 成人性色生活片免费看爆迷你毛片| 国产色产综合色产在线视频| 国产盗摄一区二区| 国产精品免费aⅴ片在线观看| 成人精品小蝌蚪| 国产亚洲综合在线| 成人av资源在线| 国产亚洲午夜高清国产拍精品| 国产在线精品一区二区夜色| 久久久久久久久99精品| 国产精选一区二区三区| 国产精品久久久久桃色tv| 成人av免费在线| 亚洲码国产岛国毛片在线| 色综合久久中文字幕| 亚洲第一电影网| 日韩欧美一区中文| 黄色小说综合网站| 国产精品伦一区二区三级视频| 丁香天五香天堂综合| 亚洲美女免费在线| 欧美精品777| 麻豆国产精品官网| 国产目拍亚洲精品99久久精品| 国产精品18久久久久久久久久久久| 日本一区二区三区dvd视频在线| 91麻豆精东视频| 免费在线欧美视频| 中文字幕欧美国产| 欧美色网站导航| 蜜臀av一级做a爰片久久| 国产免费成人在线视频| 在线免费观看一区| 另类小说图片综合网| 中国色在线观看另类| 欧美日韩国产综合视频在线观看| 精品亚洲aⅴ乱码一区二区三区| 国产精品国产三级国产aⅴ入口 | 日韩女优毛片在线| 成人免费毛片app| 亚洲国产另类精品专区| 精品成a人在线观看| 99精品一区二区三区| 日韩国产欧美在线观看| 国产午夜亚洲精品午夜鲁丝片 | 欧美性猛交xxxxxx富婆| 老司机精品视频线观看86| 国产精品美女久久福利网站| 欧美伦理电影网| 成人性生交大片| 日本伊人精品一区二区三区观看方式 | 国产91精品入口| 亚洲高清不卡在线观看| 91精品国产全国免费观看| 国产91露脸合集magnet| 丝袜美腿亚洲综合| 亚洲欧美一区二区三区孕妇| 欧美成人一级视频| 欧美色老头old∨ideo| 成人黄色在线视频| 裸体歌舞表演一区二区| 亚洲综合清纯丝袜自拍| 日本一区二区电影| 欧美大片在线观看一区二区| 色丁香久综合在线久综合在线观看| 国产在线精品免费| 视频一区中文字幕国产| 亚洲三级免费观看| 国产欧美精品一区aⅴ影院| 日韩一区二区在线看片| 国产一区二区三区四区五区美女| 北条麻妃一区二区三区| 欧美精品日韩精品| www.av亚洲| 久久视频一区二区| 午夜精品久久久久| 色婷婷国产精品综合在线观看| 日韩午夜在线观看视频| 尤物av一区二区| 99久久99久久精品国产片果冻 | 欧美第一区第二区| 国产自产视频一区二区三区| 国产精品亲子伦对白| 欧美日韩国产中文| 成人av资源在线观看| 国产福利一区在线| 久久精品国产**网站演员| 一区二区三区在线视频免费| 国产欧美日韩精品一区| 久久综合精品国产一区二区三区| 91精品黄色片免费大全| 欧美亚洲一区二区在线观看| 色综合久久综合网97色综合 |