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

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

?? 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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜一区二区三区视频| 亚洲午夜激情网站| 欧美精品日韩一区| 粉嫩av一区二区三区| 日韩和欧美一区二区| 国产精品免费视频网站| 日韩精品一区二区在线| 欧美日韩在线精品一区二区三区激情 | 91在线国内视频| 免费人成精品欧美精品| 国产精品成人网| 精品第一国产综合精品aⅴ| 在线观看日韩国产| 成人精品小蝌蚪| 国产在线精品一区二区夜色| 亚洲午夜精品一区二区三区他趣| 亚洲色图一区二区三区| 日韩欧美一二三| 欧美理论片在线| 欧美视频日韩视频| 91行情网站电视在线观看高清版| 国内外成人在线| 久久99精品久久久久| 欧美aaaaaa午夜精品| 日日欢夜夜爽一区| 三级在线观看一区二区| 亚洲大型综合色站| 亚洲精选视频在线| 亚洲乱码日产精品bd| 亚洲欧美一区二区三区极速播放| 久久久国产精品午夜一区ai换脸| 91精品国产色综合久久不卡电影 | 蜜臀久久久99精品久久久久久| 亚洲裸体xxx| 国产精品第一页第二页第三页| 日韩欧美激情四射| 精品国产亚洲一区二区三区在线观看| a4yy欧美一区二区三区| 成人激情免费电影网址| 国产69精品久久久久777| 国产一区不卡视频| 国产一区二区导航在线播放| 国产一区二区导航在线播放| 国产sm精品调教视频网站| 国产99久久久久久免费看农村| 国产麻豆精品视频| 国产精品一区二区无线| 床上的激情91.| 成人av在线播放网站| 99r国产精品| 色老汉av一区二区三区| 欧美无砖砖区免费| 日韩视频一区二区在线观看| 欧美精品一区二区三区蜜桃| 国产亚洲精品福利| 国产精品国产三级国产普通话蜜臀| 欧美高清在线视频| 亚洲美女偷拍久久| 亚洲成人久久影院| 免费的国产精品| 国产精品69毛片高清亚洲| 成人开心网精品视频| 欧美影院午夜播放| 91精品婷婷国产综合久久| 亚洲视频电影在线| 石原莉奈在线亚洲二区| 国产成人一级电影| 一本一本大道香蕉久在线精品| 99精品国产99久久久久久白柏 | 色综合激情久久| 91麻豆精品国产综合久久久久久 | 国内成+人亚洲+欧美+综合在线| 国产一区二区三区在线看麻豆 | 91成人免费在线| 欧美一二区视频| 国产精品每日更新在线播放网址| 综合久久一区二区三区| 视频一区免费在线观看| 成人综合日日夜夜| 欧美日韩大陆一区二区| 久久综合999| 亚洲国产日日夜夜| 国产成人av资源| 欧美日韩一区三区四区| 久久精品视频一区二区三区| 一区二区三区自拍| 国产一区亚洲一区| 欧美欧美午夜aⅴ在线观看| 中文字幕 久热精品 视频在线 | 久久97超碰色| 欧洲av在线精品| 国产日韩亚洲欧美综合| 亚洲福利电影网| www.日韩精品| 久久新电视剧免费观看| 亚瑟在线精品视频| 99精品欧美一区二区三区小说 | 欧美一区永久视频免费观看| 麻豆视频观看网址久久| 99久精品国产| 精品成人一区二区三区四区| 五月婷婷久久丁香| aaa国产一区| 国产欧美久久久精品影院| 奇米精品一区二区三区四区| 欧美最猛黑人xxxxx猛交| 国产欧美日韩在线观看| 毛片不卡一区二区| 911精品国产一区二区在线| 1024国产精品| 高清av一区二区| 精品sm在线观看| 麻豆91精品视频| 日韩欧美在线不卡| 亚洲成人精品一区| 在线观看免费亚洲| 中文字幕中文字幕一区| 国产a视频精品免费观看| 精品国产电影一区二区| 日本va欧美va精品| 在线播放中文字幕一区| 亚洲图片欧美色图| 在线观看日韩一区| 夜夜嗨av一区二区三区网页| 99久久久精品免费观看国产蜜| 精品国产123| 久久精品99国产国产精| 欧美嫩在线观看| 视频一区视频二区在线观看| 在线不卡免费av| 免费成人av在线| 欧美sm极限捆绑bd| 激情图片小说一区| 精品国产a毛片| 国产一区在线精品| 欧美激情中文字幕一区二区| 国产成人av电影在线观看| 国产亚洲一区二区在线观看| 国产精品一区三区| 国产精品久久久久永久免费观看 | 亚洲一区日韩精品中文字幕| 精品处破学生在线二十三| 看片的网站亚洲| 久久久99精品久久| 成人精品视频一区二区三区尤物| 久久夜色精品国产欧美乱极品| 久久99精品久久久久久久久久久久| 日韩一区二区三区视频在线观看| 爽爽淫人综合网网站| 欧美电视剧在线看免费| 国产九色sp调教91| 亚洲日穴在线视频| 在线一区二区视频| 天天av天天翘天天综合网| 日韩亚洲欧美高清| 国产成人自拍在线| 亚洲免费在线看| 欧美高清一级片在线| 精品系列免费在线观看| 国产日韩精品视频一区| 在线免费不卡电影| 蜜臀国产一区二区三区在线播放 | 欧美性感一区二区三区| 日本成人超碰在线观看| 久久一区二区三区四区| 一本一道久久a久久精品综合蜜臀| 亚洲一区在线观看免费| 精品电影一区二区三区| 99热在这里有精品免费| 午夜精品久久久久| 久久久久国产成人精品亚洲午夜 | 国产精品一区2区| 亚洲男同1069视频| 日韩一级片网址| 91在线高清观看| 视频一区二区国产| 久久久国产一区二区三区四区小说 | 国产一区二区三区四区五区入口| 日韩欧美一级二级三级久久久| 国产一区在线精品| 亚洲一区二区三区免费视频| 精品剧情v国产在线观看在线| 国产成人综合自拍| 图片区小说区区亚洲影院| 国产色产综合色产在线视频| 日本一区二区视频在线观看| 欧美精品亚洲二区| 99久久精品99国产精品| 日日噜噜夜夜狠狠视频欧美人 | 欧美日韩免费高清一区色橹橹| 麻豆成人91精品二区三区| 亚洲视频 欧洲视频| 欧美成人女星排行榜| 91福利在线观看| 成人少妇影院yyyy| 久久se精品一区精品二区| 亚瑟在线精品视频| 18成人在线观看| 国产色综合一区| 欧美一区2区视频在线观看|