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

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

?? msp430dayii_vr.c

?? 430DAY精美手表DEMO程序和原理圖
?? C
字號:
//*******************************************************************************
//  FG439 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 1MHz.
//
//         MSP430FG439
//   +--------------------+
//   |                    |
//   |              VREF+ +----/\/\/\---
//   |                    |            |
//   |          P6.0/OA0I0|----||------+
//   |                    |            |
//   |                    |           MIC
//   |                    |            |
//   |                    |            |
//   |                    |           GND
//   |                    |
//   |               ADC0 +-------< input from mic pre-amplifier
//   |               DAC0 +-------> output to speaker
//   |               P1.0 +-------> LED #1
//   |               P2.1 +-------< KEY #1
//   |               P2.2 +-------< KEY #2 
//   |                    |
//   |                    |
//
//
//  Original code base was D169_VR by A. Dannenberg
//  Modified for FG "watch" board by M. Mitchell
//  Texas Instruments Inc.
//  February, 2004
//*******************************************************************************
#include <msp430xG43x.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            118            // Record&playback sample period
                                            // SampleR = 1.048576Mhz / SamplePrd

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

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

    // process key-press event
    if (!(P2IN & 0x02))                     // 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)
{
  // setup modules
  ADC12IFG = 0x00;                          // 
  ADC12CTL1 = SHS_3 + CONSEQ_2;             // S&H TB.OUT1, rep. single chan
  ADC12MCTL0 = INCH_12 + SREF_1;            // Input A12, ref = AVCC
  ADC12CTL0 = ADC12ON + REFON + REF2_5V + ENC;// 2.5Vref
  
  DAC12_1CTL = DAC12AMP_7 + DAC12IR;        // DAC1 outputs mid voltage for OA
  DAC12_1DAT = 0x7ff;                       //

  OA0CTL0 = OAADC0 + OAP_3 + OAPM_3;        // DAC1 as + input, P6.0 as - input
  OA0CTL1 = OAFC_6 + OAFBR_7;               // PGA gain of 15

  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
  
  Delay();                                  // Delay for reference settling

  // 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
  
  P1OUT = 0;                                // LED off

}
//-----------------------------------------------------------------------------           
// 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 + DAC12OPS; // 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
  
  Delay();                                  // Delay for reference settling

  // 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

  P1DIR = 0x01;                             // P1.0 as output
  P1OUT = 0;
  P2IES = 0x06;                             // H->L edge detect for buttons

  
  FCTL2 = FWKEY + FSSEL_2 + FN1;            // Clk src = SMCLK / 3 (~333KHz)
}
//-----------------------------------------------------------------------------
// 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);
}  

//-----------------------------------------------------------------------------
// Guaranteed minimum delay of 18ms for reference settling
//-----------------------------------------------------------------------------
void Delay(void)
{
  volatile int i;
  for (i=6000; i; i--);
}

//-----------------------------------------------------------------------------
// PORT2 interrupt handler
//-----------------------------------------------------------------------------
#pragma vector = PORT2_VECTOR
__interrupt void PORT2ISR(void)
{
  P2IFG = 0;                                // Clear all P2.x interrupt flags
  _BIC_SR_IRQ(LPM3_bits);                   // Exit LPM3 on reti
}
//-----------------------------------------------------------------------------
// DAC12, DMA interrupt handler
//-----------------------------------------------------------------------------
#pragma vector = DAC12_DMA_VECTOR
__interrupt void DACDMAISR(void)
{
  DMA0CTL &= ~DMAIFG;                       // Clear DMA0 interrupt flag
  _BIC_SR_IRQ(LPM0_bits);                   // Exit LPM0 on reti
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产一区二区| 91福利区一区二区三区| 一级女性全黄久久生活片免费| 欧美电影免费观看高清完整版| 在线免费观看日韩欧美| 91亚洲精品乱码久久久久久蜜桃| 国产一区二区三区久久久| 美女视频一区在线观看| 免费高清在线视频一区·| 日韩av电影一区| 免费在线观看不卡| 激情综合亚洲精品| 狠狠色狠狠色综合日日91app| 久草中文综合在线| 国产一区二区视频在线| 国产成人精品三级| 成人国产精品免费观看| 97精品久久久午夜一区二区三区 | 欧美日韩视频在线观看一区二区三区| 成人va在线观看| 99这里只有久久精品视频| av男人天堂一区| 日本韩国欧美在线| 欧美精品免费视频| 精品毛片乱码1区2区3区| www国产成人免费观看视频 深夜成人网| 日韩欧美一区二区三区在线| 欧美电影免费观看高清完整版| 亚洲精品一线二线三线| 欧美激情资源网| 亚洲乱码中文字幕| 日韩精品久久久久久| 久久福利资源站| 99在线精品一区二区三区| 欧美中文字幕不卡| 日韩欧美黄色影院| 国产精品国产a| 国产成人精品一区二区三区四区| 成人性色生活片免费看爆迷你毛片| www.色综合.com| 欧美人动与zoxxxx乱| 久久亚洲精精品中文字幕早川悠里| 欧美激情综合网| 天堂在线一区二区| 国产精品99精品久久免费| 91视频免费看| 日韩精品一区二区三区老鸭窝| 中文字幕欧美三区| 亚洲亚洲人成综合网络| 国产一区二区三区av电影| 91亚洲精品一区二区乱码| 欧美一区午夜精品| 亚洲日本欧美天堂| 精品一区二区三区在线播放视频| 99免费精品在线| 日韩精品专区在线| 亚洲美女电影在线| 国产成a人亚洲| 欧美一级生活片| 艳妇臀荡乳欲伦亚洲一区| 国产永久精品大片wwwapp| 欧美日本免费一区二区三区| 亚洲欧洲日韩在线| 久久99国产精品久久99| 欧美日韩aaaaaa| 亚洲免费电影在线| voyeur盗摄精品| 欧美国产禁国产网站cc| 国内精品国产三级国产a久久 | 色综合天天狠狠| 久久嫩草精品久久久精品一| 日韩综合小视频| 日本久久一区二区| 国产精品成人网| 国产精品夜夜嗨| 久久视频一区二区| 亚洲风情在线资源站| 91在线一区二区三区| 中文子幕无线码一区tr| 国产一区在线观看视频| 国产精品水嫩水嫩| 丁香六月久久综合狠狠色| 久久免费午夜影院| 国产精品一区二区在线看| 日韩久久久久久| 精品一区二区三区香蕉蜜桃 | 日韩综合小视频| 欧美老女人在线| 日本亚洲免费观看| 91精品国产综合久久福利| 日韩成人精品在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲精品日韩一| 日本久久一区二区| 亚洲成人免费视| 欧美一区二区三区免费| 久久99久久久久久久久久久| 精品欧美黑人一区二区三区| 国产乱妇无码大片在线观看| 国产精品区一区二区三| 色婷婷一区二区三区四区| 亚洲国产精品一区二区尤物区| 欧美日韩精品一区二区三区 | 91精品国产91综合久久蜜臀| 久久精品噜噜噜成人av农村| 国产亚洲一区字幕| 99国产一区二区三精品乱码| 性欧美疯狂xxxxbbbb| 欧美一区二区三区四区五区| 国内精品不卡在线| 中文字幕一区二区三区不卡| 欧美调教femdomvk| 国内精品久久久久影院色| 国产精品成人在线观看| 欧美日韩三级一区| 国产精品综合一区二区三区| 国产精品成人一区二区艾草 | 久久av资源站| 综合在线观看色| 777色狠狠一区二区三区| 国产美女精品一区二区三区| 亚洲三级视频在线观看| 日韩亚洲欧美中文三级| av在线播放一区二区三区| 日本欧美一区二区三区| 国产欧美久久久精品影院| 欧美伦理电影网| 成人午夜又粗又硬又大| 日韩国产欧美在线播放| 国产精品视频观看| 日韩久久精品一区| 欧美中文一区二区三区| 国产99久久精品| 久久国产精品免费| 一区二区三区久久久| 国产日本欧美一区二区| 日韩一区二区精品葵司在线| 91女厕偷拍女厕偷拍高清| 国产在线观看免费一区| 日韩高清一区二区| 一区二区免费视频| 中文字幕在线不卡| 国产欧美日韩精品一区| 精品欧美久久久| 日韩欧美国产系列| 欧美日韩成人一区二区| 欧美吞精做爰啪啪高潮| 99久久国产综合色|国产精品| 国产精品亚洲第一区在线暖暖韩国| 视频一区二区中文字幕| 亚洲成av人片| 亚洲一区二区三区三| 亚洲女人****多毛耸耸8| 亚洲国产精品成人综合色在线婷婷| 日韩欧美激情在线| 日韩欧美视频在线| 欧美一区二区三级| 日韩一级二级三级| 欧美电影精品一区二区| 精品粉嫩超白一线天av| 欧美成人video| 亚洲精品在线免费播放| 欧美mv和日韩mv的网站| 欧美mv日韩mv亚洲| 久久综合色综合88| 国产亚洲欧美激情| 国产精品美女久久久久久久久久久| 久久精品人人做人人爽人人| 欧美激情综合五月色丁香| 中文字幕国产一区二区| 亚洲欧洲99久久| 亚洲狼人国产精品| 亚洲国产精品久久久男人的天堂| 亚洲成人激情社区| 免费在线观看精品| 国产一区二区主播在线| 成人黄色av网站在线| 在线一区二区三区做爰视频网站| 欧美日免费三级在线| 91麻豆精品国产91| 26uuu亚洲| 中文字幕日韩av资源站| 亚洲国产一区二区三区| 日本亚洲欧美天堂免费| 懂色av一区二区三区蜜臀| 91亚洲国产成人精品一区二三 | 欧美伊人久久大香线蕉综合69 | 免费成人小视频| 国产成人精品一区二| 在线观看免费亚洲| 欧美xxxx在线观看| 国产精品久久久久久久裸模| 亚洲图片欧美一区| 韩国欧美国产1区| 色94色欧美sute亚洲线路一久| 6080亚洲精品一区二区| 中文无字幕一区二区三区| 亚洲自拍另类综合| 国产精品一线二线三线精华| 欧美又粗又大又爽|