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

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

?? h4100.c

?? PWM輸出控制三路步進電機
?? C
字號:
/******************************************************************************
* ID (H4001)卡讀卡模塊程序!
******************************************************************************/

#include <avr/io.h>
#include "main.h"
#include "h4100.h"
#include <avr/interrupt.h>
#include <avr/signal.h>
uint8_t HHH[6];
SIGNAL(SIG_INTERRUPT0)
{
	uint16_t jjj;
	uint8_t test,kkk,result;
	asm("nop");
//	BUZ_OFF;
	cli();
	jjj = ReadCard(vvv);
	if(jjj)
	{		
		for (jjj=0; jjj<6 ;jjj++)
		{
			ccc[jjj] = vvv[jjj+1];
		}
		asm("nop");	
	//	RF_Init();
		Card_Show_Time=0;
		buz_count_ms =50;
		Buz_flag=1;
	
		Buz_uc_flag=1;
		Buz_Count_T =0;
		Clr_LCD_Flag=1;
		GICR =0x0;
		H4001_OK_1;		//let saved to flash
		asm("nop");
	}	
}

/******************************************************************************
function: RF_Init
desc    : initial IO ports and Timer0 to read card
Input   : none
return  : none
******************************************************************************/
void RF_Init(void)// T0/T1 initial
{
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: 460.800 kHz
    cli();
    TCCR0=0x03;     // System Clock/64
    TCNT0=0x00;      
    RF_EN;          // 1=>PA.5,設置為輸出,使能 RF

    DIS_TIMER0;     // 屏蔽定時器 0 中斷
    TIFR = 0x02;    // 寫入1,清除溢出標志
    RF_DIR0;        // PA.6設置為輸入
	//T1 for receive timer
    TCCR1B=0x03;     // System Clock/8
    TCNT1=0x00;         
    DIS_TIMER1;     // 屏蔽定時器 0 中斷
   // TIFR = 0x02;    // 寫入1,清除溢出標志
    sei();
}

/******************************************************************************
function: ReadCard
desc    : implement Manchester decode to read h4001 ID Card,using Timer0
Input   : a uchar pointer to return 5 bytes card data
return  : Read card OK - 1; Read card error - 0.
******************************************************************************/
unsigned char ReadCard(unsigned char *CardData)
{
    uchar i;
    uchar j;
    uchar k;
    uchar rowCheck;            //row parity check
    uchar colCheck;            //column parity check
    uchar startFlag;           //judge the leading 
    uchar temp;                //
    for ( k=0; k<20; k++ )     //if parity error, retry 20 times
    {
        rowCheck=0;
        colCheck=0;
        temp=0;        
        for ( i=0; i<6; i++) CardData[i]=0;
                
        for(i=0; i < 100; i++)                     //try 100 times
        {
            startFlag=0;

            TIFR = 0x02;              //Clear T0 overflow int
            TCNT0 = 202;               //40,open timer0,longer than 1 bit time and less than 2 bit time
            
            while ( (TIFR & 2) == 0 ) //timer over
            {        
                if ( !RF_DATA )       //if not a 2 bit long high level
                {
                    startFlag=1;
                    break;                
                }
            }
            
            TIFR = 0x02;              //Clear T0 overflow int
            
            TCNT0 = 242;         //200        
            
            if ( startFlag )
            {
                continue;
            }
            
            while ( (TIFR & 2) == 0 )           //timer over
            {
                if ( !RF_DATA )
                {  break;   }
            }
            
            TIFR = 0x02;                 //Clear T0 overflow int
            TCNT0 = TCNT0_15BIT;                // 1 bit time
            
            if ( RF_DATA)
            {   continue;  }
                    
            for ( j=0; j<8; j++ )
            {
                while ( (TIFR & 2) == 0 )           //timer over
                {
                    
                }           
                
                TCNT0 = 0;                   //overtime counter
                TIFR = 0x02;                 //Clear T0 overflow int
                temp = RF_DATA;   
                while ( (temp == RF_DATA) && (!(TIFR&2))  )  ;        //wait level changed
                
                if ( (!temp)||(TIFR&2) )      //if 9 bits not all 1
                {
                    startFlag = 1;
                    break;
                }
                TIFR = 0x02;                  //Clear T0 overflow int
                TCNT0 = TCNT0_15BIT;          // 1 bit time                        
            }
            
            if ( startFlag )                  //not start head
            {   continue;  }
            else
            {   break;     }        
            
        }
        if ( startFlag || (i>98) )             // ??
        {
            TCNT0 = 0;
            TIFR = 0x02;                 //Clear T0 overflow int
            sei();
            return 0;
        }
        
        rowCheck=0;
        //start receive data
        for ( i=0; i < 5 ; i++ )
        {
            
            for (j=0; j< 10; j++)
            {                
                while ( (TIFR & 2) == 0 )           //timer over
                {                        
                }           
                
                TCNT0 = TCNT0_1BIT;                        //overtime counter
                TIFR = 0x02;                
                
                temp = RF_DATA;   
                while ( (temp == RF_DATA) && (!(TIFR&2))  )  ;        //wait level changed
                
                
                TIFR = 0x02;                         //Clear T0 overflow int
                TCNT0 = TCNT0_15BIT;                 // 1 bit time      
                rowCheck ^=temp;
                
                if ( (j!=4) && (j!=9) )                
                {
                    CardData[i+1] <<=1;                
                    if (temp ) 
                    {
                        CardData[i+1] |= 0x01;
                    }
                    else
                    {
                        CardData[i+1] &= 0xfe;
                    }
                }
                else
                {
                    if( rowCheck  )
                    {
                        j++;
                        j--;
                        startFlag = 1;
                        break;
                    }
                }               
            }  
            if ( rowCheck )
            {                
                startFlag = 1;
                break;
            }         
        }
        
        if ( startFlag )
        {
            continue;
        }
        
        colCheck = 0;
        for ( i=0; i<4; i++ )                   //column check bit receive
        {
            
            while ( (TIFR & 2) == 0 )           //timer over
            {
                    
            }           
            
            TCNT0 = 0;                          //overtime counter
            TIFR = 0x02;                
            temp = RF_DATA;   
            while ( (temp == RF_DATA) && (!(TIFR&2))  )  ;        //wait level changed
            
            TIFR = 0x02;                 //Clear T0 overflow int    
            TCNT0 = TCNT0_15BIT;                // 1 bit time      
                    
            colCheck <<=1;
            
            if ( temp ) 
            {
                colCheck |= 0x01;
            }
            else
            {
                colCheck &= 0xfe;
            }
        }
        
        TCNT0 = 0;
        TIFR = 0x02;                 //Clear T0 overflow int
 
        //Check if receive correct   
             
        for ( i=0; i<5; i++ )
        {
            temp = (CardData[i+1] & 0xf0) >> 4;
            colCheck ^= temp;
            colCheck ^= ( CardData[i+1] & 0x0f);        
        }
        
        if ( colCheck==0 )       //column check correct
        {            
            break;
        }
        j++;
    }
    if ( k>19 )
    {      
        k++; //_SEI(); 
        return 0;
    }
    
    startFlag = 1;
    for ( i=1; i<6; i++ ) 
    {
        if( CardData[i] )            //不是全0
        {
            startFlag = 0;
            break;
        }
    }
    
    if ( startFlag ){  return 0;}//{ _SEI(); return 0;}
    
    if(1)                           // 卡號 全為零的時候報錯
    {
      j=0;
      for(i=0;i<6;i++)
        if(CardData[i]==0) j++;
      if(j==6) return 0;
    }
    if(1)                           // 卡號 全 0xff 的時候報錯
    {
      j=0;
      for(i=0;i<6;i++)
        if(CardData[i]==0xff) j++;
      if(j==6) return 0;
    }   
    return 1;
}
//===========================================================================
//===========================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电视剧免费全集观看| av亚洲精华国产精华| 国产精品国产三级国产普通话蜜臀 | 亚洲欧洲精品一区二区精品久久久| 欧美人与性动xxxx| 99久久久免费精品国产一区二区| 天堂资源在线中文精品| 一区二区三区四区在线播放| 中文在线一区二区| 欧美激情在线观看视频免费| 日本一区二区三区dvd视频在线| 久久综合999| 欧美成人在线直播| 日韩一级免费观看| 精品美女在线播放| 国产亚洲人成网站| 久久日韩精品一区二区五区| 精品99一区二区| 26uuu精品一区二区| 久久人人爽爽爽人久久久| 欧美mv日韩mv国产网站| 国产午夜精品久久久久久久 | 视频一区中文字幕国产| 亚洲一区电影777| 日韩电影一二三区| 日韩国产高清影视| 久久99最新地址| 成人动漫在线一区| 91福利国产成人精品照片| 欧美日韩视频专区在线播放| 欧美一区二区三区日韩视频| 日韩午夜中文字幕| 亚洲精品一区二区三区香蕉| 中文字幕中文字幕在线一区| 一区二区三区在线播| 日韩福利电影在线观看| 国产综合成人久久大片91| 成人av影院在线| 欧美日韩免费观看一区二区三区| 日韩欧美第一区| 国产最新精品精品你懂的| 亚洲色欲色欲www| 麻豆国产欧美日韩综合精品二区 | 欧美xxx久久| 亚洲综合一区二区精品导航| 国产乱子伦视频一区二区三区| 欧美性生活影院| 国产精品久久久久久久久图文区| 午夜久久久影院| 91尤物视频在线观看| www国产成人免费观看视频 深夜成人网| 亚洲精品写真福利| 99精品视频一区二区三区| 久久天天做天天爱综合色| 免费在线看一区| 欧美日韩国产乱码电影| 一区二区三区欧美视频| 色综合久久久久综合体| 国产精品高潮呻吟久久| 成人在线视频一区| 久久欧美中文字幕| 国产激情一区二区三区四区 | 免费成人你懂的| 欧美欧美午夜aⅴ在线观看| 亚洲综合成人在线| voyeur盗摄精品| 精东粉嫩av免费一区二区三区| 欧美视频中文字幕| 亚洲精品视频在线观看网站| 99久久久久久| 亚洲免费视频中文字幕| 99久久久国产精品| 亚洲精品一二三区| 欧美色手机在线观看| 亚洲成人av免费| 欧美福利视频一区| 麻豆国产欧美日韩综合精品二区 | 成人自拍视频在线观看| 欧美国产国产综合| av一区二区不卡| 亚洲视频你懂的| 欧美综合亚洲图片综合区| 亚洲一区二区三区三| 欧美精品乱人伦久久久久久| 性做久久久久久免费观看| 欧美一区二区视频观看视频| 免费在线看一区| 国产亚洲一区二区三区在线观看| 国产精品影视天天线| 综合久久久久久| 欧美日韩一级视频| 极品尤物av久久免费看| 国产精品免费人成网站| 欧美性受xxxx黑人xyx性爽| 热久久免费视频| 久久久久久夜精品精品免费| 91蜜桃视频在线| 麻豆精品在线看| 国产精品系列在线| 欧美放荡的少妇| 国产激情视频一区二区在线观看| 国产精品美女久久久久久| 欧美在线视频全部完| 精久久久久久久久久久| 国产精品超碰97尤物18| 欧美一区二区三区成人| 国产激情91久久精品导航 | 国产精品91一区二区| 一区二区三区四区高清精品免费观看| 51精品国自产在线| 成人亚洲一区二区一| 天堂va蜜桃一区二区三区漫画版| 久久亚洲二区三区| 欧美在线999| 丰满放荡岳乱妇91ww| 日韩av一区二区在线影视| 国产区在线观看成人精品| 欧美日韩一区三区| 成人黄色网址在线观看| 久久国产尿小便嘘嘘尿| 亚洲在线中文字幕| 国产精品麻豆一区二区 | 久久视频一区二区| 91国产免费看| 国产福利精品一区二区| 裸体一区二区三区| 亚洲综合免费观看高清在线观看| 日韩亚洲国产中文字幕欧美| 欧美日韩精品专区| 日本久久精品电影| 波多野结衣精品在线| 国产在线麻豆精品观看| 秋霞av亚洲一区二区三| 亚洲精品videosex极品| 国产精品久久久久久久浪潮网站| 日韩免费看的电影| 日韩一级完整毛片| 欧美色爱综合网| 色域天天综合网| 色综合久久久久| 色婷婷国产精品| 色综合天天综合网天天狠天天| 国产福利视频一区二区三区| 国内精品国产三级国产a久久| 日韩二区三区四区| 欧美a级一区二区| 蜜桃精品视频在线| 日韩制服丝袜av| 麻豆91精品视频| 久久精品国产**网站演员| 日韩国产精品大片| 蜜臀av性久久久久av蜜臀妖精| 日韩影院精彩在线| 美女视频一区二区三区| 激情综合网av| 国产精品亚洲一区二区三区在线| 蜜臀精品一区二区三区在线观看| 蜜桃视频在线观看一区二区| 蜜臀久久久99精品久久久久久| 激情久久五月天| 成a人片亚洲日本久久| 91在线视频官网| 欧美性大战xxxxx久久久| 欧美日韩中文精品| 日韩三级视频在线看| 精品精品欲导航| 亚洲国产精品二十页| 亚洲猫色日本管| 婷婷中文字幕综合| 国内精品久久久久影院色 | 亚洲另类春色校园小说| 天堂成人免费av电影一区| 麻豆国产精品777777在线| 国产美女在线观看一区| 本田岬高潮一区二区三区| 欧美三级电影在线看| 久久久影院官网| 亚洲精品国产一区二区精华液 | 久久久精品tv| 亚洲黄色免费网站| 奇米色777欧美一区二区| 国产精品99久久久久久似苏梦涵| 91首页免费视频| 日韩免费高清视频| 亚洲视频免费观看| 久久se这里有精品| 一本一道久久a久久精品| 91精品国产手机| 国产精品久久久久久亚洲伦| 天涯成人国产亚洲精品一区av| 精品一区二区三区av| 色婷婷久久久久swag精品| 日韩欧美国产综合| 一区二区三区欧美日| 国产一区 二区 三区一级| 欧美三片在线视频观看| 国产精品欧美极品| 美国欧美日韩国产在线播放| 91麻豆自制传媒国产之光| 精品成人一区二区三区|