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

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

?? bsp_eeprom.c

?? IAR 平臺ATMEL 的例程, 和說明
?? C
字號:
/*   EUROPE TECHNOLOGIES Software Support
*------------------------------------------------------------------------------
* The software is delivered "AS IS" without warranty or condition of any
* kind, either express, implied or statutory. This includes without
* limitation any warranty or condition with respect to merchantability or
* fitness for any particular purpose, or against the infringements of
* intellectual property rights of others.
*------------------------------------------------------------------------------
*
* Processor   : easyCAN3
* File Name   : bsp_eeprom.c
* Description : Function declarations for Eeprom for the BSP.
* Version     : 1.01
*
*       +----- (NEW | MODify | ADD | DELete)                                 
*       |                                                                    
*  No   |   when       who                what               
*-----+---+----------+------------------+--------------------------------------
* 000  MOD  01/07/01   David Combe    Creation
* 001  MOD  31/01/02   Mahmoud Mesgarzadeh   Clean Up
*----------------------------------------------------------------------------*/
#include <string.h>
#include "csp.h"
#include "bsp.h"


/*BSP Global Variable */
BSP_EEPROM_T BSP_Eeprom_s;
U8_T eeprom_tx_count, eeprom_tx_init;


/******************************************************************************
Function          : BSP_EEPROMInit
Description       : Configure EEPROM & SPI port                    
Input             : None
Functions called  : 創CSP_SPIInit創, 創CSP_SPIConfigureCS創, 創CSP_SPIEnable創
Returns           : None
******************************************************************************/
void BSP_EEPROMInit(void)
{
   U32_T mode  ;
   U32_T cs;

   /* Configure BSP_EEPROM Characteristics */
   BSP_Eeprom_s.chip_select          = 0;     /* bsp_eeprom_chipselect */
   BSP_Eeprom_s.page_size            = 0x20;  /* bsp_eeprom_Page_size  */
   eeprom_tx_init                    = 2;

   /* Parameters of SPI Bus */
   cs = (0xF & (0<<BSP_Eeprom_s.chip_select))<<16;
   mode = ( MSTR| PSFIX| cs );

   /* Configures SPI Module */
   CSP_SPIInit(SPI0, mode);

   /* Config SPI CSR[0] */
   CSP_SPIConfigureCS(SPI0, BSP_Eeprom_s.chip_select, DLYBCT(10)|SCBR(5)|CPOL);

   /* start SPI */
   CSP_SPIEnable(SPI0);
}

/******************************************************************************
Function          : BSP_EEPROMGetStatus
Description       : This function configures commands to get status 
                    of EEPROM (WEN/RDY).
Input             : None
Functions called  : 創CSP_SPIConfigInterrupt創, 創CSP_SPITransmit創
Returns           : None
******************************************************************************/
void BSP_EEPROMGetStatus(void)
{
   U32_T status;
   status= CSP_SPI_GET_SR(SPI0);

   /* Config. RDRF Interrupt */
   CSP_SPIConfigInterrupt(SPI0,(HIGH_LEVEL_SENSITIVE | PRIOR_1), RDRF,(U32_T) ASM_EEPROM_InterruptHandler);

   /* Read Status */
   /* Configure commandes */
   BSP_Eeprom_s.cmd_tx[0] =  EEPROM_READ_STATUS;
   BSP_Eeprom_s.cmd_tx[1] =  0xFF;

   /* Set Eeprom busy  (Default state) */
   BSP_Eeprom_s.busy = 1 ;

   /* Set initial data to send */
   eeprom_tx_count= 2 ;
   eeprom_tx_init = 2 ;

   /* Verify Write Enable */
   CSP_SPITransmit(SPI0, BSP_Eeprom_s.chip_select, BSP_Eeprom_s.cmd_tx, eeprom_tx_init);
 
}

/******************************************************************************
Function          : BSP_EEPROMWrite
Description       : This function configures commands to write on a 
                    specific EEPROM Page.
Input             : *BSP_Eeprom_p : Pointer to 創BSP_EEPROM_T創 structure
Functions called  : 創CSP_SPIConfigInterrupt創, 創CSP_SPITransmit創
Returns           : None
******************************************************************************/
void BSP_EEPROMWrite(BSP_EEPROM_T *BSP_Eeprom_p)
{
   /* Local Variables */
   U8_T i_u8;
   
   /* Set Eeprom busy  (Default state) */
   BSP_Eeprom_s.busy = 1 ;
   
   /* Config. RDRF Interrupt */
   CSP_SPIConfigInterrupt(SPI0,(HIGH_LEVEL_SENSITIVE | PRIOR_1), RDRF,(U32_T) ASM_EEPROM_InterruptHandler);
   
   /* Configure commandes */
   BSP_Eeprom_p->cmd_tx[0] =  EEPROM_WRITE;
   BSP_Eeprom_p->cmd_tx[1] = (BSP_Eeprom_p->data_s.address_u32 & 0xFF00)>>8;
   BSP_Eeprom_p->cmd_tx[2] =  BSP_Eeprom_p->data_s.address_u32 & 0xFF;

   /* Get Data To Write */
   for(i_u8=0;i_u8<BSP_Eeprom_p->data_s.byte_count_u8;i_u8++)
   {
      BSP_Eeprom_p->cmd_tx[i_u8+3] = BSP_Eeprom_p->data_s.data_a_t[i_u8]  ;
   }

   eeprom_tx_init = BSP_Eeprom_p->data_s.byte_count_u8+3;
   eeprom_tx_count = eeprom_tx_init  ;

   /* Write In the EEPROM */
   CSP_SPITransmit(SPI0, BSP_Eeprom_p->chip_select, BSP_Eeprom_p->cmd_tx, BSP_Eeprom_p->data_s.byte_count_u8+3);
}


/******************************************************************************
Function          : BSP_EEPROMRead
Description       : This function configures SPI module to read Specified data 
                    from the EEPROM address into a Ram buffer.
Input             : *BSP_Eeprom_p : Pointer to 創BSP_EEPROM_T創 structure
Functions called  : 創CSP_SPIConfigInterrupt創, 創CSP_SPITransmit創
Returns           : None
******************************************************************************/
void BSP_EEPROMRead(BSP_EEPROM_T *BSP_Eeprom_p)
{
   /* Local Variable*/
   U8_T i_u8=0;

   /* Config. REND PDC Interrupt */
   CSP_SPIConfigInterrupt(SPI0,(HIGH_LEVEL_SENSITIVE | PRIOR_4), RDRF,(U32_T) ASM_EEPROM_InterruptHandler);

   /* Set Eeprom busy  (Default state) */
   BSP_Eeprom_s.busy = 1 ;

   /* Configure commandes */
   BSP_Eeprom_p->cmd_tx[0] =  EEPROM_READ;
   BSP_Eeprom_p->cmd_tx[1] = (BSP_Eeprom_p->data_s.address_u32  & 0xFF00)>>8;
   BSP_Eeprom_p->cmd_tx[2] =  BSP_Eeprom_p->data_s.address_u32  & 0xFF;

   /* Clear data_t array */
   for (i_u8=0; i_u8<BSP_Eeprom_p->data_s.byte_count_u8; i_u8++)
      BSP_Eeprom_p->cmd_tx[i_u8+3] = 0xAA;

   eeprom_tx_init = BSP_Eeprom_p->data_s.byte_count_u8+3;
   eeprom_tx_count = eeprom_tx_init  ;

   /* Read In the EEPROM */
   CSP_SPITransmit(SPI0, BSP_Eeprom_p->chip_select, BSP_Eeprom_p->cmd_tx, BSP_Eeprom_p->data_s.byte_count_u8+3);
}


/******************************************************************************
Function          : BSP_EEPROM_InterruptHandler
Description       : Interrupt handler for Eeprom Management
Input             : None
Functions called  : 創CSP_SPI_GET_SR創, 創CSP_SPI_GET_RDR創
Returns           : None
******************************************************************************/
void BSP_EEPROM_InterruptHandler(void)
{
   /* Rx Full */
   if( (CSP_SPI_GET_SR(SPI0) & RDRF ) == RDRF)
   {
      /* Disable Interrupt RDRF */
      if((eeprom_tx_count-1) == 0x0)
      {
        SPI0->IDR  = RDRF;
        /* Set Eeprom busy  (Default state) */
        BSP_Eeprom_s.busy = 0; 
       }

      /* Read reception register*/
      BSP_Eeprom_s.cmd_tx[eeprom_tx_init - eeprom_tx_count] =((CSP_SPI_GET_RDR(SPI0) & RD)& 0xFF);

      /* Decrement value */
      eeprom_tx_count--;
   }
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三区在线视频| 在线亚洲一区二区| 7777精品伊人久久久大香线蕉 | 国产欧美日韩在线看| 亚洲一二三区在线观看| 国产99精品视频| 91精品国产丝袜白色高跟鞋| 亚洲欧洲av另类| 国产精品一卡二| 日韩欧美久久久| 日韩影院精彩在线| 色婷婷精品久久二区二区蜜臂av | 欧美一区二区三区成人| 亚洲一区二区3| 99精品视频在线观看| 久久精品一区二区三区不卡牛牛| 亚洲成人动漫在线观看| 91丨九色丨蝌蚪丨老版| 久久久久久久久久久久久女国产乱 | 国产视频一区二区在线观看| 色综合久久精品| 一区二区三区.www| 日韩一级片在线播放| 日韩国产欧美在线播放| 日韩一区和二区| 国产精品资源在线| 久久久不卡影院| 国产乱码精品一区二区三| 欧美国产综合一区二区| 在线一区二区三区| 2021久久国产精品不只是精品| 中文字幕一区二区三区不卡 | 国产精品三级视频| 国产高清无密码一区二区三区| 欧美成人综合网站| 另类欧美日韩国产在线| 欧美成人猛片aaaaaaa| 麻豆精品视频在线观看免费| 日韩三级av在线播放| 麻豆91在线播放免费| 欧美电影免费观看高清完整版| 免费精品99久久国产综合精品| 日韩午夜小视频| 精品一区二区三区在线播放视频| 精品国产电影一区二区| 国产麻豆视频一区二区| 亚洲国产高清不卡| 91蝌蚪porny九色| 一区二区三区中文字幕电影| 欧美视频一区在线| 日本午夜一本久久久综合| 555夜色666亚洲国产免| 日韩极品在线观看| 日韩精品在线一区二区| 国产成人午夜精品影院观看视频| 欧美激情资源网| 日韩精品一区二区三区老鸭窝| 久久毛片高清国产| 国产麻豆精品theporn| 日韩欧美电影一二三| 日韩激情av在线| 日韩一级二级三级精品视频| 国产做a爰片久久毛片| 国产欧美一区二区精品秋霞影院| 97久久久精品综合88久久| 亚洲一区二区三区视频在线 | 成人在线一区二区三区| 国产精品成人网| 在线观看视频一区二区| 日韩中文字幕亚洲一区二区va在线| 欧美一级xxx| 成人一区在线看| 亚洲美女偷拍久久| 日韩在线观看一区二区| 亚洲欧洲国产日本综合| 亚洲欧美日韩中文播放| 久久这里只有精品6| 日韩亚洲电影在线| 日韩美女一区二区三区四区| 欧美日韩国产高清一区二区| 欧美日韩免费高清一区色橹橹| 91在线一区二区三区| 国产成人在线视频网站| 国产激情精品久久久第一区二区 | 午夜精品久久一牛影视| 精品国产91久久久久久久妲己| 99re成人精品视频| 青草国产精品久久久久久| 国产精品毛片无遮挡高清| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日韩精品欧美精品| 国产精品免费久久久久| 7777精品伊人久久久大香线蕉最新版| 国产综合久久久久影院| 亚洲乱码一区二区三区在线观看| 亚洲伦理在线免费看| 99精品一区二区| 中文字幕av不卡| 婷婷激情综合网| 国产一区欧美二区| 在线观看不卡一区| 日韩精品中文字幕在线不卡尤物| 精品福利一区二区三区| 日韩影院精彩在线| 91在线视频在线| 色呦呦网站一区| 在线播放国产精品二区一二区四区| 日本一区二区成人在线| 国产成人精品免费| 亚洲综合男人的天堂| 久久久久久久久99精品| 欧美精品粉嫩高潮一区二区| 成人av小说网| 日韩成人av影视| 成人免费小视频| 精品久久久三级丝袜| 欧美日韩国产一级片| 9久草视频在线视频精品| 国产真实乱偷精品视频免| 亚洲va欧美va国产va天堂影院| 国产亚洲欧美一区在线观看| 欧美日韩激情在线| 99精品国产一区二区三区不卡| 激情综合网天天干| 日韩精品欧美精品| 91美女在线看| 日韩欧美中文字幕制服| 日韩制服丝袜av| 日本道免费精品一区二区三区| 日韩午夜三级在线| 亚洲国产美国国产综合一区二区| 久久国产生活片100| 欧美综合亚洲图片综合区| 久久嫩草精品久久久久| 天堂av在线一区| 91精品福利视频| 国产精品福利一区| 91亚洲精品久久久蜜桃网站| 亚洲人成亚洲人成在线观看图片| 精品免费国产一区二区三区四区| 色丁香久综合在线久综合在线观看| 国产高清在线精品| 国产一区二区三区香蕉| 久久成人久久鬼色| 亚洲va欧美va人人爽午夜| 亚洲免费成人av| 亚洲精品高清视频在线观看| 国产精品久久福利| 国产精品久久网站| 久久久久久久久久看片| 精品久久国产97色综合| 欧美一区午夜精品| 91精品国产aⅴ一区二区| 欧美精品色综合| 欧美精品在欧美一区二区少妇| 欧美日韩在线播放三区四区| 欧美午夜视频网站| 91麻豆精品国产综合久久久久久 | 一区二区三区在线影院| 最近中文字幕一区二区三区| 亚洲男女一区二区三区| 亚洲激情图片qvod| 亚洲午夜久久久久久久久电影网| 国产精品免费看片| 国产精品久99| 亚洲一线二线三线视频| 亚洲成a人v欧美综合天堂下载| 日韩一区欧美二区| 激情五月播播久久久精品| 国产一区二区女| 不卡视频一二三四| 在线看不卡av| 欧美一区二区精品在线| 精品久久国产老人久久综合| 欧美激情自拍偷拍| 亚洲综合色婷婷| 青青草视频一区| 国产精品一区二区三区网站| 不卡影院免费观看| 欧美日韩一区二区三区在线 | 不卡一区在线观看| 欧美中文字幕一区| 日韩欧美国产三级电影视频| 亚洲成av人在线观看| 免费高清视频精品| 国产传媒一区在线| 色屁屁一区二区| 欧美一区二区免费| 国产精品天美传媒沈樵| 一区二区三区在线免费播放| 男人的j进女人的j一区| 国产成人av福利| 国产精品一区二区三区网站| 久久精品噜噜噜成人av农村| 一区二区高清视频在线观看| 激情久久久久久久久久久久久久久久| 亚洲青青青在线视频| 久久精品免费在线观看| 日韩欧美二区三区| 日韩视频一区在线观看|