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

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

?? msp430fg4619 eeprom emulation_cce.c

?? MSP430操作TUSB3410,USB接口芯片的源代碼
?? C
字號:
//******************************************************************************
//   MSP430xG461x Demo - 24xx EEPROM Emulation using USCI_B0 and DMA
//
//   Description: This code uses the USCI_B0 module in conjunction with
//   one DMA channel to emulate a 24xx-type EEPROM. It implements address
//   selection, current address read, random read, and sequential read
//   operations. The code is optimized for maximum efficiency to enable
//   zero-latency I2C communication in I2C fast mode as required by some
//   master devices such as the TUSB3410.
//
//   An application example, the EEPROM contents as used in the app note
//   SLAA276 is used and provided to the TUSB3410.
//
//   ACLK = 32kHz, MCLK = SMCLK = 8MHz
//
//                        /|\ /|\
//            TUSB3410    1k  1k      MSP430xG461x
//          ------------   |   |   -------------------
//         |         SDA|<-|---+->|P3.1/UCB0SDA    XIN|-
//         |            |  |      |                   | 32kHz
//         |            |  |      |               XOUT|-
//         |            |  |      |                   |
//         |         SCL|--+----->|P3.2/UCB0SCL       |
//         |            |         |                   |
//         |            |         |                   |
//         |            |         |               P1.4|--> SMCLK
//
//   Andreas Dannenberg
//   Texas Instruments Inc.
//   October 2006
//   Built with Code Composer Essentials V2.00
//******************************************************************************
#include "msp430xG46x.h"

#define EEPROM_ADDRESS       0x50           // Address for EEPROM emulation

//------------------------------------------------------------------------------
// The constant EEPROMImage[] contains the data to be loaded into the TUSB3410
// USB configuration EEPROM. It was generated using the tools provided in
// SLLC251 and then converted into a C constant. Note that the USB descriptor
// blocks contain checksums, therefore manual modification of the below EEPROM
// image is not recommended.
//
// USB vendor ID: 0x0451 (TI's VID)
// USB product ID: 0xbeef (This application's PID)
// USB product descriptor: "MSP430-TUSB3410 Reference Design"
//------------------------------------------------------------------------------
static const unsigned char EEPROMImage[] =
{
  0x10, 0x34, 0x03, 0x12, 0x00, 0x33, 0x12, 0x01,
  0x10, 0x01, 0xff, 0x00, 0x00, 0x08, 0x51, 0x04,
  0xef, 0xbe, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01,
  0x05, 0x6c, 0x00, 0x34, 0x04, 0x03, 0x09, 0x04,
  0x24, 0x03, 0x54, 0x00, 0x65, 0x00, 0x78, 0x00,
  0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x49, 0x00,
  0x6e, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00,
  0x75, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x6e, 0x00,
  0x74, 0x00, 0x73, 0x00, 0x42, 0x03, 0x4d, 0x00,
  0x53, 0x00, 0x50, 0x00, 0x34, 0x00, 0x33, 0x00,
  0x30, 0x00, 0x2d, 0x00, 0x54, 0x00, 0x55, 0x00,
  0x53, 0x00, 0x42, 0x00, 0x33, 0x00, 0x34, 0x00,
  0x31, 0x00, 0x30, 0x00, 0x20, 0x00, 0x52, 0x00,
  0x65, 0x00, 0x66, 0x00, 0x65, 0x00, 0x72, 0x00,
  0x65, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x65, 0x00,
  0x20, 0x00, 0x44, 0x00, 0x65, 0x00, 0x73, 0x00,
  0x69, 0x00, 0x67, 0x00, 0x6e, 0x00, 0x00, 0x00,
  0x00
};

// Function prototypes
void InitSystem(void);

// Implementation
void main(void)
{
  InitSystem();

  __enable_interrupt();
  __bis_SR_register(LPM0_bits);             // Enter LPM0
}

void InitSystem(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop Watchdog timer

  // Clock system setup
  FLL_CTL0 |= DCOPLUS + XCAP18PF;           // DCO+ set, freq = xtal x D x N+1
  SCFI0 |= FN_4;                            // x2 DCO freq, 8MHz nominal DCO
  SCFQCTL = 121;                            // (121+1) x 32768 x 2 = 7.99 MHz
  P1SEL |= 0x10;                            // Output SMCLK on P1.4
  P1DIR |= 0x10;                            // Set P1.4 to output

  // Configure DMA Channel 0 to source the I2C Module
  DMACTL0 = DMA0TSEL_13;                    // Trigger is USCI_B0 transmit
  DMA0CTL = DMASRCINCR_3 + DMADSTBYTE + DMASRCBYTE;
  DMA0SA = (__SFR_FARPTR)(unsigned long)&EEPROMImage;  // Source is virtual EEPROM
  DMA0DA = (__SFR_FARPTR)(unsigned long)&UCB0TXBUF;    // Dest is USCI_B0 TX buffer
  DMA0SZ = sizeof EEPROMImage;
  DMA0CTL |= DMAEN;                         // Enable DMA channel 0

  // Init USCI_B0 Module for slave mode
  P3SEL |= 0x06;                            // Assign I2C pins to USCI_B0
  UCB0CTL1 |= UCSWRST;                      // Enable SW reset
  UCB0CTL0 = UCMODE_3 + UCSYNC;             // I2C Slave, synchronous mode
  UCB0I2COA = EEPROM_ADDRESS;               // Set Own Address
  UCB0CTL1 &= ~UCSWRST;                     // Clear SW reset, resume operation
  IE2 |= UCB0RXIE;                          // Enable RX interrupt
}

//------------------------------------------------------------------------------
// The USCIB0 data ISR is used to receive data from the TUSB3410 I2C master.
// This data is used as an EEPROM emulation start address by using the two
// received bytes as the start address for the next I2C read transaction. The
// DMA is used for efficient data transfers. Note that the temporary value
// 0xffff which is used to determine if the 1st/2nd byte was received is
// also generated CPU internal by the constant generator, thus allowing for
// a maximum-efficiency implementation.
//------------------------------------------------------------------------------
__interrupt void USCIAB0TX_ISR_FUNC(void)
{
  static unsigned int EEPROMTemp = 0xffff;  // Assign initial value,
                                            // 'static' to preserve variable
                                            // over ISR calls

  if (EEPROMTemp == 0xffff)                 // MSB already received?
  {
    EEPROMTemp = UCB0RXBUF;                 // No, load address MSB
  }
  else                                      // Yes, re-assign DMA source addr
  {
    DMA0CTL &= ~DMAEN;                      // Disable DMA channel 0
    DMA0SA = (__SFR_FARPTR)((unsigned long)&EEPROMImage + (EEPROMTemp << 8) + UCB0RXBUF);
    DMA0CTL |= DMAEN;                       // Re-enable DMA channel 0
    EEPROMTemp = 0xffff;                    // Ready for new address
  }
}
USCIAB0TX_ISR(USCIAB0TX_ISR_FUNC)           // Assign interrupt vector

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕的久久| 9191精品国产综合久久久久久| 日本一区二区综合亚洲| 日韩精品色哟哟| 视频一区在线播放| kk眼镜猥琐国模调教系列一区二区| 国产精品天美传媒沈樵| 三级久久三级久久久| 青青国产91久久久久久 | 国产激情精品久久久第一区二区| 亚洲欧美怡红院| 国产福利一区二区三区视频| 亚洲精品国产无天堂网2021 | 岛国一区二区三区| 久久夜色精品国产噜噜av| 国产精品久久久久桃色tv| 成人白浆超碰人人人人| 成人精品高清在线| 精品成人佐山爱一区二区| 欧美精品色一区二区三区| 国产精品成人在线观看| 久久久欧美精品sm网站| 蜜臀91精品一区二区三区| 欧美在线999| 99精品久久只有精品| 中文字幕一区二区三区不卡| 日韩美女在线视频| 亚洲日本va在线观看| 91九色最新地址| 日韩美女啊v在线免费观看| 精品一区二区免费看| 精品福利av导航| 欧美性一二三区| 欧美aaaaaa午夜精品| 亚洲综合免费观看高清在线观看| 成人教育av在线| 日韩激情视频在线观看| 日韩免费观看2025年上映的电影| 久久亚洲综合色一区二区三区| 不卡的av在线播放| 狠狠色丁香婷婷综合| 亚洲五月六月丁香激情| 国产精品乱子久久久久| 2021久久国产精品不只是精品| 色偷偷久久一区二区三区| 国产美女精品人人做人人爽| 日本欧美在线观看| 偷拍日韩校园综合在线| 五月开心婷婷久久| 亚洲成人福利片| 亚洲成人免费观看| 视频在线观看91| 精品一区二区三区香蕉蜜桃 | 成人禁用看黄a在线| 国产在线精品免费| 日日夜夜精品视频免费| 国产精品国产馆在线真实露脸| 欧美一区二区三区日韩| 99久久久精品| 亚洲人妖av一区二区| 国产成人综合网站| 久久不见久久见免费视频1| 久久伊99综合婷婷久久伊| 91.成人天堂一区| 国产福利一区二区三区| 欧美精品在线观看播放| 国产精品羞羞答答xxdd| 国产老肥熟一区二区三区| 亚洲精品日产精品乱码不卡| 精品视频一区二区三区免费| 日本不卡一二三| 亚洲精品高清在线观看| 国产精品毛片高清在线完整版| 日韩电影在线看| 精品国产网站在线观看| 国产成人h网站| 成人自拍视频在线| 午夜av区久久| 在线免费观看视频一区| 激情五月婷婷综合| 成人h动漫精品一区二区| 色综合天天综合网天天看片| 欧美三级三级三级| 精品久久一区二区| 综合中文字幕亚洲| 日韩av在线播放中文字幕| 国产一区二区三区观看| 99视频国产精品| 日韩三级在线免费观看| 欧美激情在线一区二区| 亚洲国产毛片aaaaa无费看| 日韩欧美第一区| 日韩专区在线视频| 欧美一区二区性放荡片| 欧美国产精品一区二区三区| 亚洲精品综合在线| 另类小说图片综合网| 99精品欧美一区二区三区小说| 日韩无一区二区| 一色屋精品亚洲香蕉网站| 免费的国产精品| 色综合夜色一区| 337p粉嫩大胆噜噜噜噜噜91av| 91免费国产在线观看| 日韩免费视频一区二区| 亚洲精品高清视频在线观看| 国产精品资源网| 这里只有精品99re| 日韩理论在线观看| 国产露脸91国语对白| 777精品伊人久久久久大香线蕉| 国产精品久久久久久久久晋中 | 成人综合婷婷国产精品久久| 精品少妇一区二区三区日产乱码| 国产一区二三区| 亚洲精品你懂的| 日韩视频不卡中文| 国产精品影视在线观看| 1024成人网| 日韩欧美国产三级| 99久久精品国产观看| 秋霞午夜av一区二区三区| 国产三级精品在线| 欧美日韩中字一区| 成人av在线播放网址| 免费美女久久99| 夜色激情一区二区| 亚洲成人一区二区在线观看| 91精品国产色综合久久| 99精品久久99久久久久| 久久国产精品99精品国产| 亚洲最快最全在线视频| 亚洲天堂免费在线观看视频| 久久久www免费人成精品| 欧美一区二区三区播放老司机| 欧美在线观看18| 国产一区二区三区四区在线观看| 亚洲国产日日夜夜| 精品一区二区三区久久| 欧美日韩一区二区三区视频| 精品伦理精品一区| 亚洲国产成人porn| 成人免费毛片片v| 欧美不卡一区二区| 日本成人中文字幕在线视频| hitomi一区二区三区精品| 日韩一区二区三区免费观看| 美日韩黄色大片| 欧美在线|欧美| 国产精品日日摸夜夜摸av| 99精品桃花视频在线观看| 美女www一区二区| 夜夜嗨av一区二区三区中文字幕 | 成人深夜在线观看| 亚洲天堂av老司机| 成人黄色国产精品网站大全在线免费观看| 亚洲另类在线视频| 久久男人中文字幕资源站| 色综合久久天天| 高清久久久久久| 成人在线视频首页| 国产精品99久久久久久有的能看| 亚洲午夜免费电影| 91丨porny丨蝌蚪视频| 日韩欧美一区在线| 国产人成一区二区三区影院| 国产精品麻豆久久久| 国产精品91一区二区| 久久国产福利国产秒拍| 91性感美女视频| 色8久久人人97超碰香蕉987| 欧美男生操女生| 欧美系列在线观看| 欧美一区二区视频免费观看| 欧美体内she精视频| 欧美大黄免费观看| 精品国产乱码久久久久久老虎 | 国产成人av电影在线观看| 九九视频精品免费| 欧美xxxxxxxx| 国产成人自拍网| 欧美一卡二卡三卡| 一区二区激情视频| 在线欧美一区二区| 精品精品欲导航| 国产喂奶挤奶一区二区三区| 国产精品久久久久7777按摩| 欧美精品一区二区高清在线观看| 精品一区二区三区在线播放视频| 日韩丝袜美女视频| 欧美男人的天堂一二区| 538在线一区二区精品国产| 天堂va蜜桃一区二区三区漫画版| 在线不卡欧美精品一区二区三区| 男男视频亚洲欧美| 一本大道久久a久久精二百| 国产亚洲欧洲997久久综合| 欧美激情一区二区三区蜜桃视频 | 欧美日韩在线观看一区二区| 国产欧美日韩在线视频|