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

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

?? level2.c

?? em公司的RFID源程序,適合EM4094,絕對震撼!
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
*-------------------------------------------------------------------------------
*--  RCSId: $Id: level2.c,v 1.50 2005-04-12 14:54:27+02 mjg Exp mjg $
*--         $Name:  $
*-------------------------------------------------------------------------------
*-- level2.c - Low level data transforming 
*-------------------------------------------------------------------------------
*-- $Log: level2.c,v $
*-- Revision 1.50  2005-04-12 14:54:27+02  mjg
*-- switch to normal mode
*--
*-- Revision 1.49  2005-03-21 17:01:04+01  mjg
*-- Uplink timing tuned
*--
*-- Revision 1.47  2005-02-28 13:35:30+01  mjg
*-- EM4006 uid crc check
*--
*-- Revision 1.46  2005-02-25 11:23:13+01  mjg
*-- EM4006 extraction routine, no crc check
*--
*-- Revision 1.45  2005-02-25 11:19:41+01  mjg
*-- EM4006 extraction routine, no crc check
*--
*-- Revision 1.44  2005-02-25 09:12:49+01  mjg
*-- EM4006 decode mode
*--
*-- Revision 1.43  2005-02-23 16:04:15+01  mjg
*-- EM4006 raw mode, not tested
*--
*-- Revision 1.42  2005-02-21 18:13:55+01  mjg
*-- hubneme IV
*--
*-- Revision 1.41  2005-02-21 10:56:31+01  mjg
*-- hubneme III
*--
*-- Revision 1.40  2005-02-21 10:47:42+01  mjg
*-- hubneme III
*--
*-- Revision 1.39  2005-02-21 10:45:25+01  mjg
*-- hubneme III
*--
*-- Revision 1.38  2005-01-19 15:53:51+01  mjg
*-- EM4034 EAS off support corrected
*--
*-- Revision 1.37  2004-12-13 08:49:33+01  mjg
*-- compiler sensitive code in HWTransaction
*--
*-- Revision 1.36  2004-12-07 17:22:17+01  mjg
*-- version 4 of 1TS ready
*--
*-- Revision 1.35  2004-12-07 15:22:21+01  mjg
*-- 1.33 strikes back!
*--
*-- Revision 1.33  2004-06-30 12:47:41+02  mjg
*-- key selection extension
*--
*-- Revision 1.32  2004-05-31 16:41:51+02  mjg
*-- single carrier too slow caused CRC errors, speeded up
*--
*-- Revision 1.31  2004-05-21 09:29:37+02  mjg
*-- startup inventory, to toggle EAS off for EM4034
*--
*-- Revision 1.30  2004-05-10 09:23:27+02  mjg
*-- to toggle EAS off
*--
*-- Revision 1.29  2004-05-07 08:10:25+02  mjg
*-- HW auth passed
*--
*-- Revision 1.28  2004-04-27 17:05:44+02  mjg
*-- to better test the design
*--
*-- Revision 1.27  2004-04-21 15:48:47+02  mjg
*-- FSK low data rate support
*--
*-- Revision 1.26  2004-04-21 13:05:21+02  mjg
*-- EOF ignored because of FSK and 4034 support
*--
*-- Revision 1.25  2004-04-13 11:21:39+02  mjg
*-- sync
*--
*-- Revision 1.24  2004-03-25 16:09:19+01  mjg
*-- to add delayed EOF feature
*--
*-- Revision 1.23  2004-03-25 15:13:23+01  mjg
*-- to add delayed EOF feature
*--
*-- Revision 1.22  2004-03-24 13:35:36+01  mjg
*-- error msg needs better handling
*--
*-- Revision 1.21  2004-03-15 16:59:06+01  mjg
*-- to check SPI
*--
*-- Revision 1.20  2004-02-16 08:04:11+01  mjg
*-- preliminary CD
*--
*-- Revision 1.18  2004-02-10 19:24:40+01  mjg
*-- FSK to add valid bits
*--
*-- Revision 1.17  2004-02-10 18:30:46+01  mjg
*-- dual carrier raw, decoded 1st try
*--
*-- Revision 1.16  2004-02-09 18:03:33+01  mjg
*-- raw dual carrier capture
*--
*-- Revision 1.15  2004-02-08 12:30:52+01  mjg
*-- Decode var removed, FSK polling added
*--
*-- Revision 1.14  2004-02-07 14:59:47+01  mjg
*-- Response parsing correction
*--
*-- Revision 1.13  2004-02-03 08:42:52+01  mjg
*-- hubneme II
*--
*-- Revision 1.12  2004-02-03 07:24:37+01  mjg
*-- fwd debug implemented and removed from being compiled
*--
*-- Revision 1.11  2004-01-19 14:08:05+01  mjg
*-- hubneme I
*--
*-- Revision 1.10  2004-01-14 14:57:35+01  mjg
*-- to Invenotry version 2
*--
*-- Revision 1.9  2003-12-11 17:37:20+01  mjg
*-- yes
*--
*-- Revision 1.8  2003-12-11 16:33:41+01  mjg
*-- 1TS gives too much responses, stayquiet ?
*--
*-- Revision 1.7  2003-12-10 08:15:48+01  mjg
*-- to add dbg code
*--
*-- Revision 1.6  2003-12-09 12:43:01+01  mjg
*-- to 1TS inventory
*--
*-- Revision 1.4  2003-12-09 12:42:44+01  mjg
*-- to 1TS inventory
*--
*-- Revision 1.3  2003-12-05 08:38:56+01  mjg
*-- write update
*--
*-- Revision 1.2  2003-12-04 15:58:08+01  mjg
*-- to write
*--
*-- Revision 1.1  2003-12-01 08:18:04+01  mjg
*-- single carrier low drate level1 ok
*--
*-- Revision 1.0  2003-11-26 09:01:02+01  mjg
*-- Initial revision
*--
*-------------------------------------------------------------------------------
*/

#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include "level4.h"
#include "level3.h"
#include "level2.h"
#include "level1.h"

//--------------------------------------------------------------
//global variables

uint8_t bufferClean = 0;                     //flag for pre-cleaning

struct TCAPTURE capture;

uint8_t * forward_ptr;                       //ptr for forward message preparation

uint8_t data_buffer[CAPTURE_SIZE];           //array of forwarded bits XOR clean response data

#ifdef DEBUG
uint16_t solich = 0;
uint16_t offset = 0;
#endif

//uint16_t fwd_delays[7] = { -81, -238, -384, -531, -685, -831, -975 };      //for 16MHz clock
uint16_t fwd_delays[7] = { -81, -238, -384, -533, -687, -833, -977 };      //for 16MHz clock
uint16_t fwd_flow[9];

//--------------------------------------------------------------
//local variables

register uint8_t captured_byte asm ("r6");      //store_bit current capture bits
register uint8_t captured_valid asm ("r7");     //store_bit current capture valid bits
register uint8_t capture_cnt asm ("r8");        //store_bit current capture byte index
register uint8_t captured_bit_count asm ("r9"); //store_bit current capture bit counter

#define SPI_DELAY 5                          //dummy cycles of WaitSPI 

volatile uint8_t fwd_bit_phase;              //forwardlink bit phase
uint8_t fwd_bit_sz;                          //forwardlink bit counter
uint8_t * fwd_write_ptr;                     //forwardlink bit pointer

uint8_t field_stop;                          //next field stop in RF clocks

// ==================================================================
// Forward link interrupt routine (implements a final state machine)

SIGNAL (SIG_OVERFLOW1) {

  if (forward_link_type == 0x01) {           //1 from 4 type forwardlink

    switch (fwd_bit_phase) {

    case 4 :
      cbi( PORTC, MOD_PIN );

      if(fwd_bit_sz-- > 0) {                   //prepare next bit modulation
        TCNT1 = fwd_delays[(*fwd_write_ptr) * 2];
        fwd_bit_phase = 5;
      } else {                                 //EOF
        TCNT1 = fwd_delays[1];
//        TCNT1 = -226;
        fwd_bit_phase = 8;
//        cbi(PORTC, DBG_TRANS); 
      }
      break;

    case 5:
      sbi( PORTC, MOD_PIN );
      TCNT1 = fwd_delays[0];

      if((*fwd_write_ptr) == 3) {
        fwd_write_ptr++;
        fwd_bit_phase = 4;
      }
      else
        fwd_bit_phase = 6;
      break;

    case 6:
      cbi( PORTC, MOD_PIN );

      TCNT1 = fwd_delays[5 - ((*fwd_write_ptr++) * 2)]; 
      fwd_bit_phase = 4;
      break;

    case 12:                             //standalone EOF
      sbi( PORTC, MOD_PIN );

      TCNT1 = fwd_delays[0];
      fwd_bit_phase = 13;
      break;

    case 13:
      cbi( PORTC, MOD_PIN );

      TCNT1 = -755;
      fwd_bit_phase = 5;                 //generate 2nd standalone EOF pulse
      break;

    default :
      if (fwd_bit_phase < 9) {

        TCNT1 = fwd_flow[fwd_bit_phase];
        if (fwd_bit_phase & 1) 
          cbi( PORTC, MOD_PIN );
        else
          sbi( PORTC, MOD_PIN );
        fwd_bit_phase++;

      } else {
        TCCR1B = 0;                             //no clock T1
        cbi( PORTC, MOD_PIN );
        cbi(TIMSK, TOIE1 );                    //stop 
        cbi(TIFR, TOV1);                       //clear pending int
      }

      break;
    }
  
  } else {                                   //invalid modulation type
    TCCR1B = 0;                               //no clock T1
    cbi(TIMSK, TOIE1);                       //else stop
    cbi(TIFR, TOV1);                         //clear pending int
  };

}


// ==================================================================
// Forward Link setup function
// Requires: forwarLink_data filled with valid bits (1 bit per byte)
//           fwd_bit_count set with number of bits to be sent

void SendForward(uint8_t fwd_bit_count) {

  fwd_write_ptr = data_buffer;
  fwd_bit_sz = fwd_bit_count;
  fwd_bit_phase = 0;

  int i;
  for(i=0; i<9; i++) fwd_flow[i] = fwd_delays[0];
  fwd_flow[1] = fwd_delays[3];
  fwd_flow[3] = fwd_delays[1];

/*
  if (debug_mode == 1) {
    UDR = fwd_bit_sz;
    while (!(UCSRA & (1<<UDRE)))
      {} 

    for(i=0; i<fwd_bit_sz; i++) {
      UDR = data_buffer[i];
      while (!(UCSRA & (1<<UDRE)))
        {} 
    }
  }
*/

//  sbi(PORTD, DBG_TRANS); 


  TCNT1 = -256;                            //minimum startup pulse length
  cbi( PORTC, MOD_PIN );                   //notmod pulse
  sbi(TIMSK, TOIE1);
  TCCR1B = 1;                              //internal clock T1, RUN!

  // waiting for clearing TOIE1 => command sending
  while ( bit_is_set(TIMSK, TOIE1) != 0 )
    {
//      SetLEDOff();
//      SetLEDOn();
//      SetLEDOff();
    }
#if 0
//#ifdef DEBUG
  cbi(PORTC, DBG_TRANS); 
  sbi(PORTC, DBG_TRANS); 
  cbi(PORTC, DBG_TRANS); 
#endif
}

// ==================================================================
// EOF send function, assumes valid initialization by SendForward

void SendEOF(void) {

  fwd_write_ptr = data_buffer;
  fwd_bit_sz = 0;
  fwd_bit_phase = 5;

  PORTB = PINB ^ (1<<SDA_PIN);

  TCNT1 = -256;                            //minimum startup pulse length
  cbi( PORTC, MOD_PIN );                   //notmod pulse
  sbi(TIMSK, TOIE1);
  TCCR1B = 1;                              //internal clock T1, RUN!

  // waiting for clearing TOIE1 => command sending
  while ( bit_is_set(TIMSK, TOIE1) != 0 )
    {}

  PORTB = PINB ^ (1<<SDA_PIN);
}

// ==================================================================
// prepares data bit pairs
// see EM4x35 uplink spec

uint8_t Prepare_Data( uint8_t data ) {

  register uint8_t i;

  for(i=0; i<4; i++) {
    *forward_ptr++ = data & 3;
    data >>= 2;
  }

  return 4;                             //return number of emited bits
}


// ==================================================================

void ClearCaptureBuffers(void) {
  uint8_t i;
  for(i=0; i<CAPTURE_SIZE; i++) {
    capture.capture_data[i] = 0;
    capture.capture_valid[i] = 0xFF;
  }
  bufferClean = 1;
}


// ==================================================================

void WaitSPI(void) {
  int register x = SPI_DELAY;
  while(x-->0)
    {}
}

// ==================================================================

void WriteSPI(uint16_t low, uint16_t hi) {

  int16_t data = low;  
  uint8_t bitcnt = 32;  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女视频一区二区三区| 麻豆91精品91久久久的内涵| 亚洲福利视频一区| 国产美女在线精品| 7777精品伊人久久久大香线蕉最新版| 久久精品视频一区二区三区| 日韩精品乱码免费| 91久久精品午夜一区二区| 国产三区在线成人av| 青娱乐精品在线视频| 欧美亚洲国产一区二区三区 | 日韩av在线免费观看不卡| 国模无码大尺度一区二区三区| 精品亚洲成a人| 欧美日韩在线直播| 一区二区三区欧美日韩| 丰满亚洲少妇av| 久久综合狠狠综合久久激情| 奇米精品一区二区三区在线观看| 色悠久久久久综合欧美99| 国产欧美一区二区精品性色超碰 | 亚洲综合在线观看视频| 成人一级视频在线观看| 2023国产一二三区日本精品2022| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美日韩一级片网站| 午夜视频在线观看一区二区| 欧美在线一区二区| 亚洲午夜成aⅴ人片| 日本福利一区二区| 一区二区三区欧美| 欧洲一区在线电影| 亚洲午夜视频在线| 精品视频一区二区三区免费| 日韩综合一区二区| 欧美va在线播放| 国产一区二区三区免费| 国产欧美日韩综合| 99精品热视频| 一个色综合网站| 欧美日韩美女一区二区| 日韩精彩视频在线观看| 欧美v日韩v国产v| 粉嫩av一区二区三区粉嫩 | 成人av免费在线播放| 综合在线观看色| 在线日韩一区二区| 亚洲成精国产精品女| 欧美一级夜夜爽| 国产精品88av| 亚洲男同性视频| 555夜色666亚洲国产免| 国产精品自拍毛片| 亚洲人成网站在线| 日韩一区二区三区电影| 国产成人超碰人人澡人人澡| 亚洲日韩欧美一区二区在线| 欧美日韩一区中文字幕| 国产在线看一区| 亚洲免费观看高清完整| 777xxx欧美| 成人免费视频国产在线观看| 一区二区三区在线视频播放| 91精品中文字幕一区二区三区| 国产一区欧美一区| 亚洲精品综合在线| 欧美精品一区二区三| 91热门视频在线观看| 美女高潮久久久| 一区在线观看视频| 欧美成人伊人久久综合网| 国产白丝精品91爽爽久久| 亚洲国产一区在线观看| 久久先锋影音av鲁色资源网| 欧美性大战xxxxx久久久| 国产精品88888| 三级欧美在线一区| 亚洲精品视频在线看| 精品福利一区二区三区| 欧美日精品一区视频| 成人国产亚洲欧美成人综合网| 蜜臀久久99精品久久久久久9| 17c精品麻豆一区二区免费| 欧美精品一区二区三区在线| 欧美日韩一区二区在线观看| 成人免费观看男女羞羞视频| 麻豆国产精品777777在线| 亚洲制服丝袜在线| 国产精品每日更新在线播放网址| 日韩一区二区精品在线观看| 91理论电影在线观看| 国产成人午夜精品影院观看视频| 日韩激情视频网站| 亚洲国产精品影院| 最新日韩av在线| 国产午夜精品理论片a级大结局| 欧美一区二区三区四区高清| 欧美丝袜自拍制服另类| 99热这里都是精品| 成人黄色av网站在线| 国产成人免费av在线| 久久er99热精品一区二区| 视频一区二区三区入口| 性做久久久久久免费观看欧美| 国产日韩欧美综合在线| a亚洲天堂av| 精品一区二区三区免费| 亚洲视频一区二区在线观看| 成人不卡免费av| 久久成人久久鬼色| 美女视频黄 久久| 丝袜诱惑亚洲看片| 亚洲电影一级片| 亚洲韩国精品一区| 亚洲福利视频三区| 婷婷综合另类小说色区| 五月激情综合婷婷| 人人狠狠综合久久亚洲| 久久精品av麻豆的观看方式| 蜜臀av一区二区三区| 麻豆精品一区二区| 国产一区视频网站| 成人网页在线观看| 色老汉一区二区三区| 欧美吞精做爰啪啪高潮| 精品视频一区二区不卡| 69堂精品视频| 久久久噜噜噜久久中文字幕色伊伊 | 7777精品伊人久久久大香线蕉超级流畅 | 日本少妇一区二区| 国内精品视频666| 成人激情综合网站| 在线视频国产一区| 欧美岛国在线观看| 久久综合九色综合97婷婷女人 | www激情久久| 国产精品国产三级国产有无不卡 | 久久国产成人午夜av影院| 精品一二线国产| kk眼镜猥琐国模调教系列一区二区 | 亚洲午夜久久久久| 久久国内精品视频| 99天天综合性| 在线综合+亚洲+欧美中文字幕| 久久综合九色综合欧美就去吻| 亚洲图片激情小说| 免费一级欧美片在线观看| 粉嫩av亚洲一区二区图片| 欧美无砖专区一中文字| 久久综合九色欧美综合狠狠| 一区二区三区在线观看视频| 日韩av午夜在线观看| 成人免费视频caoporn| 欧美日韩精品一区视频| 国产欧美日韩不卡| 亚洲成av人片一区二区三区| 国产成人精品免费在线| 欧美日韩午夜在线| 国产欧美日韩精品在线| 日韩1区2区日韩1区2区| 91在线看国产| 久久久久青草大香线综合精品| 亚洲综合视频在线观看| 国产白丝精品91爽爽久久| 欧美一区二区三区四区久久| 1000部国产精品成人观看| 黄网站免费久久| 欧美日韩aaa| 亚洲欧美视频一区| 国产凹凸在线观看一区二区| 日韩欧美激情一区| 亚洲线精品一区二区三区八戒| 夫妻av一区二区| 亚洲精品在线观| 青青草97国产精品免费观看| 日本丶国产丶欧美色综合| 日本一区二区三区在线不卡| 麻豆成人在线观看| 欧美日本在线播放| 一区二区三区欧美激情| 91香蕉视频在线| 国产精品网站在线观看| 国产91综合一区在线观看| 欧美不卡视频一区| 六月婷婷色综合| 日韩一区二区三区在线观看| 亚洲午夜精品在线| 欧美亚洲尤物久久| 一区二区三区四区在线免费观看 | 欧美草草影院在线视频| 日本视频在线一区| 91精品国产色综合久久不卡电影| 亚洲国产成人精品视频| 欧美丝袜丝交足nylons| 亚洲aⅴ怡春院| 欧美日高清视频| 日韩中文字幕不卡| 欧美精品自拍偷拍动漫精品| 亚洲一二三四久久| 6080午夜不卡|