rfid_conversions.c
来自「找的一个用U2270B开发的射频卡项目文件」· C语言 代码 · 共 380 行
C
380 行
// $Id: rfid_Conversions.c,v 1.1 2006/09/25 22:08:15 tprescott Exp $
/*****************************************************
Project : rfid_Conversions.c
Date : 9/08/2006
Author : Toby Prescott
Company : Atmel
Comments: AVR Studio GCC
Revisions:
v1.0 - Started written for CodeVision
v2.6 - Clean for WinAVR
*****************************************************/
#include "rfid_Conversions.h"
// *******************************************************************************
// * Converts a hex number into an ASCII string for display
// *******************************************************************************
void conv_Char2HexStr2(unsigned char *outStr, unsigned char inChar)
{
unsigned char tmp1, tmp0;
tmp1 = inChar >> 4; // Separate into high four bits
tmp0 = inChar & 0x0F; // and low four bits
if(tmp1 < 10){*outStr = tmp1+'0';} // If 0-1 return ASCII value
else if(tmp1 < 16){*outStr = tmp1+'7';} // If A-F return ASCII value
outStr++; // Increment pointer to next string value
if(tmp0 < 10){*outStr = tmp0+'0';} // If 0-1 return ASCII value
else if(tmp0 < 16){*outStr = tmp0+'7';} // If A-F return ASCII value
outStr++; // Increment pointer to next string value
}
void conv_HexArray2Ascii(unsigned char *outStr, unsigned char *inStr)
{
unsigned char i, j, k=0, workingByte, carryVal=0;
unsigned char string1[12] = {0}, string2[12] = {0};
workingByte = *inStr--;
for(j=1; j<39; j++)
{
if(k == 8)
{
workingByte = *inStr--;
k=0;
}
for(i=0; i<12; i++){string2[i]=0;}
if((workingByte&0x01) == 0x01)
{
switch(j){
case 1:
string2[11]=1;
break;
case 2:
string2[11]=2;
break;
case 3:
string2[11]=4;
break;
case 4:
string2[11]=8;
break;
case 5:
string2[10]=1;
string2[11]=6;
break;
case 6:
string2[10]=3;
string2[11]=2;
break;
case 7:
string2[10]=6;
string2[11]=4;
break;
case 8:
string2[9]=1;
string2[10]=2;
string2[11]=8;
break;
case 9:
string2[9]=2;
string2[10]=5;
string2[11]=6;
break;
case 10:
string2[9]=5;
string2[10]=1;
string2[11]=2;
break;
case 11:
string2[8]=1;
string2[9]=0;
string2[10]=2;
string2[11]=4;
break;
case 12:
string2[8]=2;
string2[9]=0;
string2[10]=4;
string2[11]=8;
break;
case 13:
string2[8]=4;
string2[9]=0;
string2[10]=9;
string2[11]=6;
break;
case 14:
string2[8]=8;
string2[9]=1;
string2[10]=9;
string2[11]=2;
break;
case 15:
string2[7]=1;
string2[8]=6;
string2[9]=3;
string2[10]=8;
string2[11]=4;
break;
case 16:
string2[7]=3;
string2[8]=2;
string2[9]=7;
string2[10]=6;
string2[11]=8;
break;
case 17:
string2[7]=6;
string2[8]=5;
string2[9]=5;
string2[10]=3;
string2[11]=6;
break;
case 18:
string2[6]=1;
string2[7]=3;
string2[8]=1;
string2[9]=0;
string2[10]=7;
string2[11]=2;
break;
case 19:
string2[6]=2;
string2[7]=6;
string2[8]=2;
string2[9]=1;
string2[10]=4;
string2[11]=4;
break;
case 20:
string2[6]=5;
string2[7]=2;
string2[8]=4;
string2[9]=2;
string2[10]=8;
string2[11]=8;
break;
case 21:
string2[5]=1;
string2[6]=0;
string2[7]=4;
string2[8]=8;
string2[9]=5;
string2[10]=7;
string2[11]=6;
break;
case 22:
string2[5]=2;
string2[6]=0;
string2[7]=9;
string2[8]=7;
string2[9]=1;
string2[10]=5;
string2[11]=2;
break;
case 23:
string2[5]=4;
string2[6]=1;
string2[7]=9;
string2[8]=4;
string2[9]=3;
string2[10]=0;
string2[11]=4;
break;
case 24:
string2[5]=8;
string2[6]=3;
string2[7]=8;
string2[8]=8;
string2[9]=6;
string2[10]=0;
string2[11]=8;
break;
case 25:
string2[4]=1;
string2[5]=6;
string2[6]=7;
string2[7]=7;
string2[8]=7;
string2[9]=2;
string2[10]=1;
string2[11]=6;
break;
case 26:
string2[4]=3;
string2[5]=3;
string2[6]=5;
string2[7]=5;
string2[8]=4;
string2[9]=4;
string2[10]=3;
string2[11]=2;
break;
case 27:
string2[4]=6;
string2[5]=7;
string2[6]=1;
string2[7]=0;
string2[8]=8;
string2[9]=8;
string2[10]=6;
string2[11]=4;
break;
case 28:
string2[3]=1;
string2[4]=3;
string2[5]=4;
string2[6]=2;
string2[7]=1;
string2[8]=7;
string2[9]=7;
string2[10]=2;
string2[11]=8;
break;
case 29:
string2[3]=2;
string2[4]=6;
string2[5]=8;
string2[6]=4;
string2[7]=3;
string2[8]=5;
string2[9]=4;
string2[10]=5;
string2[11]=6;
break;
case 30:
string2[3]=5;
string2[4]=3;
string2[5]=6;
string2[6]=8;
string2[7]=7;
string2[8]=0;
string2[9]=9;
string2[10]=1;
string2[11]=2;
break;
case 31:
string2[2]=1;
string2[3]=0;
string2[4]=7;
string2[5]=3;
string2[6]=7;
string2[7]=4;
string2[8]=1;
string2[9]=8;
string2[10]=2;
string2[11]=4;
break;
case 32:
string2[2]=2;
string2[3]=1;
string2[4]=4;
string2[5]=7;
string2[6]=4;
string2[7]=8;
string2[8]=3;
string2[9]=6;
string2[10]=4;
string2[11]=8;
break;
case 33:
string2[2]=4;
string2[3]=2;
string2[4]=9;
string2[5]=4;
string2[6]=9;
string2[7]=6;
string2[8]=7;
string2[9]=2;
string2[10]=9;
string2[11]=6;
break;
case 34:
string2[2]=8;
string2[3]=5;
string2[4]=8;
string2[5]=9;
string2[6]=9;
string2[7]=3;
string2[8]=4;
string2[9]=5;
string2[10]=9;
string2[11]=2;
break;
case 35:
string2[1]=1;
string2[2]=7;
string2[3]=1;
string2[4]=7;
string2[5]=9;
string2[6]=8;
string2[7]=6;
string2[8]=9;
string2[9]=1;
string2[10]=8;
string2[11]=4;
break;
case 36:
string2[1]=3;
string2[2]=4;
string2[3]=3;
string2[4]=5;
string2[5]=9;
string2[6]=7;
string2[7]=3;
string2[8]=8;
string2[9]=3;
string2[10]=6;
string2[11]=8;
break;
case 37:
string2[1]=6;
string2[2]=8;
string2[3]=7;
string2[4]=1;
string2[5]=9;
string2[6]=4;
string2[7]=7;
string2[8]=6;
string2[9]=7;
string2[10]=3;
string2[11]=6;
break;
case 38:
string2[0]=1;
string2[1]=3;
string2[2]=7;
string2[3]=4;
string2[4]=3;
string2[5]=8;
string2[6]=9;
string2[7]=5;
string2[8]=3;
string2[9]=4;
string2[10]=7;
string2[11]=2;
break;
default:
break;
}
}
for(i=0; i < 12; i++)
{
string1[11-i] = string1[11-i]+string2[11-i]+carryVal;
if(string1[11-i] >= 10)
{
string1[11-i] = string1[11-i]-10;
carryVal = 1;
}
else{carryVal = 0;}
}
workingByte = workingByte>>1;
k++;
}
for(i=0; i < 12; i++){*outStr++ = string1[i]+'0';}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?