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

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

?? scib_lib.c

?? atmel c5122 USB C51程序
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*C**************************************************************************
* NAME:         scib_lib.c
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      c5122-scib-usb-hid-2_4_0      
* REVISION:     1.13     
*----------------------------------------------------------------------------
* PURPOSE: 
* This file contains SCIB library functions:
* init, receive and send functions...
*****************************************************************************/

/*_____ I N C L U D E S ____________________________________________________*/
#include "config.h"
#include "scib_lib.h"


/*_____ M A C R O S ________________________________________________________*/

#define Scib_hw_get_clear_sciir()       (Scib_hw_clear_SCRS(),  SCIIR)
#define Scib_hw_get_scisr()             (Scib_hw_clear_SCRS(),  SCISR)
#define Scib_hw_get_scier()             (Scib_hw_set_SCRS(),    SCIER) 
#define Scib_hw_set_or_scier(c)         (SCIER|=(c)) 
#define Scib_hw_set_and_scier(c)        (SCIER&=(c)) 
#define Scib_hw_set_status_error(c)     (uc_error |= (c))
#define Scib_hw_get_status_error()      (uc_error)
#define Scib_hw_clear_status_error(c)   (uc_error &= ~(c))
#define Scib_hw_set_uc_transmit(c)      (uc_transmit=(c))


/*_____ D E F I N I T I O N S ______________________________________________*/
extern Uchar uc_error;
extern Uchar uc_transmit;


extern Uchar uc_tab_index_rec;
extern Uchar uc_tab_index_trans;

/*extern api fct*/
extern void scib_api_card_in(void);
extern void scib_api_card_out(void) ;
extern void scib_api_card_mvt(void);
extern void scib_api_store_rx_datas(void);
extern void scib_api_send_tx(void);
extern volatile bit b_first_byte_ATR ;
extern volatile Uchar * puc_buffer_tx;
extern volatile Uint16 us_size_tx;

/*_____ D E C L A R A T I O N S ____________________________________________*/
code Uint16 aus_Fi[] ={372,372,558,744,1116,1488,1860,0,0,
512,768,1024,1536,2048,0,0};

code Uchar auc_Di[] ={0,1,2,4,8,16,32,0,12,20,0,0,0,0,0,0};

void empty_fct(void) {}     /* empty function*/

code st_set_parameter_T0 parameter_T0_default = {
      0x11,        //Default TA1 = 11
      0,           //Default Direct convention
      0x0,         //Default Gard Time 12 etu
      10,          //Default WI 
      0            //Clock stopping not allowed
      }; 

#ifdef SCIB_USE_TIMER1
Union16 u16_timer_last_count;
Uint16  us_timer_count;
#endif

/*F**************************************************************************
* NAME: scib_it_int1 
*----------------------------------------------------------------------------
* PARAMS: none
* return: none
*----------------------------------------------------------------------------
* PURPOSE: 
* external interrupt 1 function
* This function manage by interrupt all mouvement card
* If pull up on CPRES:
* CPLEV = 0 (detection of falling edge on CPRES, reset value)
* insertion of the smart card, an interrupt appears
* CPLEV = 1 (detection of rising edge on CPRES)
* extraction of the smart card, an interrupt appears
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: This function set the counter debounce uc_slot_debounce at the max 
* value and set bit mouvement card in slot data SCIB hard
*----------------------------------------------------------------------------
* REQUIREMENTS: is necessarry to check and decrement uc_slot_debounce in 
* the main loop
*****************************************************************************/
void scib_it_int1(void) interrupt IRQ_INT1
{
  if(MSK_ISEL_PRESIT == (ISEL & MSK_ISEL_PRESIT))
  {
    if(MSK_ISEL_CPLEV == (ISEL & MSK_ISEL_CPLEV))
    {
      /*set CPLEV*/
      ISEL &= (~MSK_ISEL_CPLEV);
      
      scib_api_card_out();  

      Scib_hw_set_status_error(MSK_SCISR_CARDIN );
      //scib_card_power_off (&ast_slot[0]);
         
      /*CARD EXTRACTION*/
    }
    else
    {
      /*reset CPLEV*/
      ISEL |= MSK_ISEL_CPLEV;      

      scib_api_card_in();
      /*CARD INSERTION*/
    }
    //ast_slot[0].uc_smart_card |= MASK_CARD_MVT;
    //uc_slot_debounce = MAX_DEBOUNCE;        
    scib_api_card_mvt();
    
    ISEL &= (~MSK_ISEL_PRESIT);    
  }
}


/*F**************************************************************************
* NAME: scib_it_sci 
*----------------------------------------------------------------------------
* PARAMS: none
* return: none
*----------------------------------------------------------------------------
* PURPOSE: 
* SCIB hard interrupt management 
* This function manage the uart SCIB hard for the Tx, Rx carracter and 
* the timeout 
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: this function use the global variable uc_error,puc_buffer_rx
* puc_buffer_tx, uc_size_tx, uc_size_rx, us_size_buffer_rx_max
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/

void scib_it_sci(void) interrupt IRQ_SCIB
{
   register data Uchar uc_sciir;

   Uchar uc_old_scrs;
 //  Scib_hw_save_context_scrs(save_scrs);                                



   uc_old_scrs = SCSR;
   /*SCIIR is reseted after a the first read operation*/ 
   uc_sciir = Scib_hw_get_clear_sciir();

   /* IF IT transmit buffer empty */
    if (MSK_SCIIR_SCTBI == (uc_sciir & MSK_SCIIR_SCTBI))      
    {
      us_size_tx --;
      /* if last byte */
      if (us_size_tx==0)
      {
        /* disable IT transmit buffer */
        Scib_set_SCRS();
        Scib_disable_it_empty_buffer(); //SCIER &= ~ MSK_SCIER_ESCTBI;
    
        /* enable IT Transmit and BWT Rx*/
        Scib_enable_it_transmit_and_bwt_rx();
    
        /*start counter WTEN=1 */
    //    scib_en_wait_time_count();
      } 
      Scib_clear_SCRS();
      Scib_putchar (Scib_dma_read()); //SCTBUF = * puc_buffer_tx; 
      puc_buffer_tx ++;       
    } 

   /* IF received */
   if (MSK_SCIIR_SCRI == (uc_sciir & MSK_SCIIR_SCRI))         
   {   
      Scib_hw_set_SCRS();
      scib_api_store_rx_datas();  
   }

    /* IF timeout */
    if (MSK_SCIIR_SCWTI == (uc_sciir & MSK_SCIIR_SCWTI))      
    {
      /* disable IT RX,TX,Timeout*/
      Scib_hw_set_SCRS();
      SCIER &= ~ (MSK_SCIER_ESCTI | MSK_SCIER_ESCTBI | MSK_SCIER_ESCWT | MSK_SCIER_ESCRI) ;
      Scib_hw_set_status_error(MSK_SCIIR_SCWTI);
    }

  

    /* IF IT transmit byte */  
    if (MSK_SCIIR_SCTI == (uc_sciir & MSK_SCIIR_SCTI))      
    {
     /*start counter WTEN=1 */
      scib_en_wait_time_count();

      /* disable IT transmit */
      Scib_hw_set_SCRS();
      Scib_hw_disable_it_transmit_buffer(); 
      
      Scib_hw_set_uc_transmit(1);
    }  

   /* IF other error IT */   
    if (uc_sciir & (MSK_SCIIR_ICARDERR | MSK_SCIIR_VCARDERR | MSK_SCIIR_SCPI))    
    {
      // for first byte ATR TS is in inverse convention
      if (b_first_byte_ATR)     
      {
          // update convention 
        scib_inverse_conv();  
        b_first_byte_ATR = 0;
      }
      else      
      {
        Scib_hw_set_status_error((uc_sciir & (MSK_SCIIR_ICARDERR | MSK_SCIIR_VCARDERR | MSK_SCIIR_SCPI)));
        
        Scib_hw_set_SCRS();
        SCIER &= ~ (MSK_SCIER_ESCTI | MSK_SCIER_ESCTBI | MSK_SCIER_ESCPI | MSK_SCIER_ESCWT) ;
      }
    }
//    Scib_hw_restore_context_scrs(save_scrs);

    Scib_clear_SCRS();
    SCSR |=  (uc_old_scrs & MSK_SCSR_SCRS);
}

 








/*F**************************************************************************
* NAME: scib_hw_init 
*----------------------------------------------------------------------------
* PARAMS:
* return:   none
*----------------------------------------------------------------------------
* PURPOSE: 
* reset/unreset if the VCC appears
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void scib_hw_init(void)
{
  Scib_hw_set_SCRS();
  SCICR |= MSK_SCICR_RESET;     /* Reset UART configuration */
  SCICR &=(~MSK_SCICR_RESET);   /* End of UART Reset */

}


/*F**************************************************************************
* NAME: scib_hw_activ_card 
*----------------------------------------------------------------------------
* PARAMS: none
* return: none
*----------------------------------------------------------------------------
* PURPOSE: 
* start the activation sequence in line smart card SCIB hard (IO,CLK,VCC)
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void scib_hw_activ_card(void)
{
  /*select UART mode*/
  Scib_set_SCRS();
  SCICR |= MSK_SCICR_UART;

  scib_cardio_on(); 

  scib_cardclk_on();
}


/*F**************************************************************************
* NAME: scib_hw_send_byte 
*----------------------------------------------------------------------------
* PARAMS: uc_data_to_send: byte to send
* return: none
*----------------------------------------------------------------------------
* PURPOSE: 
* Sends one byte on CIO pin
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void scib_hw_send_byte(Uchar uc_data_to_send)
{
  Scib_set_SCRS();
  SCIER |= MSK_SCIER_ESCTI;

  Scib_clear_SCRS();
  SCTBUF = uc_data_to_send;
}


/*F**************************************************************************
* NAME: scib_hw_clk_config  
*----------------------------------------------------------------------------
*----------------------------------------------------------------------------
* PARAMS: none
* return: none   
*----------------------------------------------------------------------------
* PURPOSE: 
* configuration of the smard card clock
*****************************************************************************
* NOTE: 
*****************************************************************************/
void  scib_hw_clk_config(Uchar clk)
{
  /*SELECT BANK*/
  Scib_set_SCRS();

#ifdef _FPGA_ 

  /*CPU_CLOCK = 7.37MHz, ISO_CLOCK = 3.68MHz*/
  SCICLK = 0x2D;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级黄色大片| 中文字幕乱码亚洲精品一区| 欧美色图在线观看| 亚洲蜜臀av乱码久久精品| 欧美一级搡bbbb搡bbbb| 91精品国产综合久久久久| 日韩免费视频线观看| 久久综合色8888| 欧美激情综合在线| 亚洲综合清纯丝袜自拍| 日韩影院免费视频| 国内成人精品2018免费看| 成人高清视频免费观看| 欧美日韩一区小说| www欧美成人18+| 夜色激情一区二区| 精品一区二区国语对白| 成人av在线影院| 91精品国产欧美一区二区| 久久精品亚洲精品国产欧美kt∨ | 在线视频观看一区| 欧美日韩dvd在线观看| 国产亚洲美州欧州综合国| 一区二区三区在线看| 国产麻豆精品视频| 欧美日韩亚洲不卡| 国产日韩欧美a| 午夜激情一区二区三区| 成人综合婷婷国产精品久久免费| 欧美熟乱第一页| 国产精品视频一二三| 秋霞午夜av一区二区三区 | 欧美成人高清电影在线| 亚洲欧美韩国综合色| 国产成人在线视频网址| 6080yy午夜一二三区久久| 亚洲男人的天堂网| 成人av资源站| 国产欧美一区二区在线观看| 免费美女久久99| 欧美日韩日日骚| 亚洲尤物视频在线| 欧美在线视频全部完| 国产精品欧美一区二区三区| 老司机一区二区| 精品久久久久久久久久久院品网| 香蕉影视欧美成人| 色婷婷综合五月| 亚洲精品免费视频| 色综合久久六月婷婷中文字幕| 国产视频一区不卡| 成人激情校园春色| 国产精品国产a级| 在线日韩国产精品| 视频一区中文字幕国产| 欧美日韩国产乱码电影| 国产成人精品一区二区三区四区| 精品国产一二三区| 国模冰冰炮一区二区| 日本一区二区在线不卡| 风间由美性色一区二区三区| 日韩毛片一二三区| 欧美一区二区三区系列电影| 久久精品国产亚洲a| 国产精品久久久久永久免费观看 | 丝袜美腿亚洲一区| 久久婷婷综合激情| 在线观看日韩一区| 极品少妇xxxx偷拍精品少妇| 国产欧美日韩精品一区| 91成人免费在线视频| 麻豆91小视频| 中文字幕一区二区三区在线播放| 欧美影视一区二区三区| 激情欧美一区二区三区在线观看| 国产精品久久福利| 日韩一二在线观看| 色视频欧美一区二区三区| 秋霞电影一区二区| 亚洲一区二区三区在线播放| 国产片一区二区| 欧美放荡的少妇| 色婷婷综合久久久久中文| 久久精品99国产精品| 成人欧美一区二区三区1314| 欧美va亚洲va| 这里只有精品99re| 欧美写真视频网站| 91看片淫黄大片一级在线观看| 国产麻豆视频一区| 麻豆91免费观看| 三级欧美在线一区| 亚洲午夜在线观看视频在线| 成人免费在线视频| 国产欧美精品一区二区三区四区| 在线成人午夜影院| 欧美精品久久久久久久多人混战 | 欧美日韩aaaaa| 欧美日韩不卡在线| 欧美精品在线观看播放| 欧美日韩国产综合一区二区| 欧美视频一区在线| 欧美日韩中文字幕精品| 欧美日韩久久久一区| 日本久久一区二区三区| 91麻豆免费观看| 欧美三级三级三级爽爽爽| 欧美日韩另类国产亚洲欧美一级| 欧美日韩免费视频| 91精品国产色综合久久ai换脸| 欧美久久久久免费| 日韩精品最新网址| 国产亚洲人成网站| 中文字幕日韩一区二区| 亚洲伦理在线免费看| 亚洲福利电影网| 久久激情五月激情| 成人av在线资源| 欧美美女bb生活片| 亚洲精品国产一区二区精华液| 悠悠色在线精品| 激情五月播播久久久精品| jlzzjlzz亚洲日本少妇| 欧美午夜不卡视频| 亚洲精品一区二区三区精华液 | 另类小说一区二区三区| 成人一区二区视频| 91久久香蕉国产日韩欧美9色| 欧美在线免费视屏| 日韩一级成人av| 久久久夜色精品亚洲| 亚洲午夜免费福利视频| 亚洲欧美中日韩| 91视频在线观看免费| 99天天综合性| 国产精品影视天天线| 色综合久久久久| 欧美大片在线观看| 亚洲欧美成人一区二区三区| 免费黄网站欧美| 99久久精品免费| 久久久99精品免费观看不卡| 亚洲欧洲综合另类| 国产乱子伦视频一区二区三区 | 日本一区二区视频在线| 亚洲一区二区三区四区五区黄 | 欧美片网站yy| 亚洲欧洲av在线| 国内国产精品久久| 欧美理论电影在线| 怡红院av一区二区三区| 成人精品视频一区| 欧美mv日韩mv亚洲| 麻豆精品在线看| 欧美日韩一区不卡| 中文字幕一区三区| 成人av网站在线| 亚洲欧洲精品成人久久奇米网| 久久精品av麻豆的观看方式| 欧美日韩国产精品成人| 亚洲成人动漫一区| 日韩欧美专区在线| 日韩精品一级中文字幕精品视频免费观看 | 在线视频国内自拍亚洲视频| 日韩理论片在线| 99精品视频一区二区三区| 国产精品久久久久天堂| 国产成人综合亚洲网站| 欧美国产一区二区在线观看| 国产一区视频导航| 国产精品盗摄一区二区三区| 成人av免费网站| 中文字幕在线不卡一区| 色综合色综合色综合色综合色综合| 国产精品国产自产拍高清av| 成人h精品动漫一区二区三区| 国产精品毛片大码女人| 色综合天天综合网天天看片| 亚洲一区二区欧美激情| 欧美精选一区二区| 久久精品999| 国产精品美女久久久久久久| 欧美系列亚洲系列| 久久成人羞羞网站| 国产精品美女久久久久aⅴ| 国产九色sp调教91| 首页国产欧美久久| 国产亚洲欧美在线| 在线观看成人免费视频| 精品系列免费在线观看| 国产精品亲子乱子伦xxxx裸| 欧美日高清视频| 菠萝蜜视频在线观看一区| 日本伊人精品一区二区三区观看方式| 精品日韩欧美一区二区| 在线国产亚洲欧美| 九九九精品视频| 首页国产欧美久久| 亚洲码国产岛国毛片在线| 26uuuu精品一区二区|