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

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

?? 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 Name       : BSP_EEPROMInit
* Object              : Config. EEPROM & SPI port
* Input Parameters    : BSP_EEPROM_T *BSP_Eeprom_pt
* Output Parameters   : None
* Functions called    : CIP_SPIInit / CIP_SPIStart / CIP_SPIConfigueCS
*                     :
******************************************************************************/
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, 10<<24|5<<8|1<<0, BSP_Eeprom_s.chip_select);

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

/*****************************************************************************
* Function Name       : BSP_EEPROMGetStatus
* Object              : Configue Commands to Get Status
*                     : of EEPROM (WEN/RDY)
* Input Parameters    : None
* Output Parameters   : None
* Functions called    : CSP_SPIConfigInterrupt  *                     : CSP_SPIWrite
*                     : CIP_STStart
******************************************************************************/
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 Name       : BSP_EEPROMWrite
* Object              : Configue Commands to on Specific EEPROM Page
* Input Parameters    : BSP_EEPROM_T *BSP_Eeprom_p
* Output Parameters   : None
* Functions called    : CIP_SPIWrite
******************************************************************************/
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 Name       : BIOS_EEPROMRead
* Object              : reads Specified data_t from the EEPROM
*                     : address into a Ram buffer
* Input Parameters    : BSP_EEPROM_T *BSP_Eeprom_p
* Output Parameters   : None
* Functions called    : SPI_Read
*                     : CIP_STStart
******************************************************************************/
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 function for Eeprom Management
            : Due to waity state CS Set up Time
Inputs      : None
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--;
   }
 }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频在线看| 欧美一卡二卡在线观看| 欧美国产精品专区| 国产成人精品一区二| 国产日韩欧美高清| jizzjizzjizz欧美| 亚洲精品久久嫩草网站秘色| 色视频欧美一区二区三区| 亚洲综合无码一区二区| 欧美午夜电影网| 奇米影视在线99精品| 精品久久人人做人人爰| 国产成人免费网站| 日韩美女精品在线| 欧美精品乱码久久久久久| 蜜臀av一区二区在线免费观看| 精品精品欲导航| 成人免费毛片aaaaa**| 亚洲男人天堂av| 欧美一区日本一区韩国一区| 国产高清一区日本| 亚洲一区欧美一区| wwwwww.欧美系列| 97久久超碰精品国产| 亚洲国产欧美在线| 26uuu欧美| 欧美中文字幕一二三区视频| 久久国产精品99久久久久久老狼| 久久久.com| 欧美日韩不卡在线| 成人午夜电影久久影院| 亚洲一区二区美女| 国产欧美视频一区二区| 欧美日韩aaa| 成人网在线免费视频| 天堂成人免费av电影一区| 国产欧美日韩卡一| 日韩一区二区三区视频| 97精品久久久久中文字幕| 黄色资源网久久资源365| 亚洲人成7777| 国产日韩欧美制服另类| 欧美日韩国产a| 99vv1com这只有精品| 精品一区二区免费在线观看| 亚洲一区二区影院| 亚洲欧洲另类国产综合| 久久奇米777| 欧美一区二区精美| 欧美吻胸吃奶大尺度电影| 国产成人精品亚洲日本在线桃色| 天天影视网天天综合色在线播放| 国产精品丝袜一区| 精品国产乱码久久久久久1区2区| 7777精品伊人久久久大香线蕉经典版下载| 成人性视频网站| 国产剧情av麻豆香蕉精品| 人人精品人人爱| 婷婷综合五月天| 亚洲精品成a人| 自拍偷拍欧美精品| 国产精品嫩草影院com| 久久在线免费观看| 日韩免费看的电影| 91精品国产一区二区三区蜜臀 | 久久久久久久综合日本| 欧美高清性hdvideosex| 在线观看亚洲一区| 色综合久久综合网欧美综合网| 国产91丝袜在线播放0| 国产成人精品免费| 国产麻豆日韩欧美久久| 激情综合一区二区三区| 蜜桃久久久久久久| 精品一区二区在线看| 另类专区欧美蜜桃臀第一页| 日本中文一区二区三区| 日本中文字幕一区二区视频 | 色婷婷精品大在线视频 | 亚洲午夜久久久久久久久电影网 | 国产成人免费高清| 国产在线视频一区二区| 精品一区二区三区久久久| 蜜桃精品视频在线| 久久福利视频一区二区| 久草这里只有精品视频| 另类中文字幕网| 国产一区二区不卡在线| 国产精品77777| 99精品国产视频| 在线日韩av片| 欧美一区二区精品| 久久蜜臀精品av| 国产日韩精品一区二区浪潮av| 日本一区二区三区四区| 国产精品二区一区二区aⅴ污介绍| 日韩久久一区二区| 亚洲成人先锋电影| 激情文学综合网| 成人动漫一区二区在线| 欧洲在线/亚洲| 精品日韩在线观看| 国产精品人成在线观看免费| 亚洲人成伊人成综合网小说| 亚洲一区自拍偷拍| 日本va欧美va精品| 成人激情开心网| 欧美日韩在线不卡| 久久久久久久久岛国免费| 日韩一区在线看| 午夜精品久久久久久久 | 国产精品久久久99| 亚洲一区二区av在线| 美日韩一区二区三区| 国产91精品免费| 欧美精品777| 亚洲天堂中文字幕| 日本中文字幕一区二区有限公司| 国产伦精品一区二区三区免费| 99久久精品一区| 精品少妇一区二区三区在线播放| 国产精品情趣视频| 日本少妇一区二区| 色综合婷婷久久| 精品福利一二区| 亚洲精品v日韩精品| 精品一区二区三区影院在线午夜| 色综合天天综合网天天狠天天| 欧美一区二区黄| 一区二区三区产品免费精品久久75| 奇米影视在线99精品| 91在线观看成人| 26uuu久久天堂性欧美| 亚洲一级二级三级| 盗摄精品av一区二区三区| 717成人午夜免费福利电影| 国产精品久久久久三级| 免费视频一区二区| 色婷婷综合五月| 国产精品嫩草久久久久| 黄页视频在线91| 欧美一区二区三区男人的天堂| 成人免费视频在线观看| 国产福利视频一区二区三区| 欧美日韩中文字幕一区二区| 亚洲欧美在线高清| 国产成人精品免费在线| 日韩欧美二区三区| 午夜不卡在线视频| 91精品福利视频| 亚洲丝袜制服诱惑| 成人午夜免费av| 久久精品夜色噜噜亚洲a∨| 三级亚洲高清视频| 欧美优质美女网站| 亚洲视频每日更新| 波多野结衣一区二区三区| 久久欧美中文字幕| 久久电影网电视剧免费观看| 欧美一级生活片| 日本免费在线视频不卡一不卡二| 欧美在线不卡视频| 一区二区在线免费| 一本色道亚洲精品aⅴ| 日韩美女啊v在线免费观看| 成人性生交大片免费看中文| 欧美激情中文字幕一区二区| 国产成人亚洲综合a∨婷婷图片 | 成人综合激情网| 日本一区二区三区dvd视频在线| 国产一区二区中文字幕| 国产偷国产偷亚洲高清人白洁 | 欧美色涩在线第一页| 欧美日韩免费一区二区三区视频| 欧美不卡一区二区三区| 日韩二区三区在线观看| 欧美一区二区福利视频| 日韩—二三区免费观看av| 日韩一级在线观看| 一区二区在线观看视频| 亚洲影院在线观看| 蜜臀精品久久久久久蜜臀 | 成人毛片在线观看| 亚洲国产精品成人久久综合一区| 国产成人啪午夜精品网站男同| 国产精品色眯眯| 91在线视频免费91| 亚洲午夜久久久久中文字幕久| 欧美日韩国产另类一区| 热久久久久久久| 久久一区二区三区四区| 不卡免费追剧大全电视剧网站| 亚洲欧洲成人自拍| 7777精品伊人久久久大香线蕉完整版 | 极品少妇xxxx精品少妇偷拍| 中文字幕精品一区二区精品绿巨人| 99国产精品久久| 日本系列欧美系列| 国产欧美精品一区二区三区四区| 一本大道久久a久久精品综合|