Some bugs fixed for the use with none 13.56 MHz crystals

This commit is contained in:
mail001 2013-11-20 21:13:36 +00:00
parent c60fbaad3b
commit 9a1f16dbb7
1 changed files with 400 additions and 395 deletions

View File

@ -107,7 +107,7 @@ void waitForOneBitTime()
//Skip every 17 bit times 1 cycle
void waitForOneBitTime()
{
if (rCount < 17)
if (rCount < 7)
{
OCR1AL = CLC_PBIT / 2 - 1;
rCount++;
@ -212,8 +212,13 @@ inline void resetRxFlags()
uint8_t rxMiller()
{
uint8_t t;
uint16_t cDown = 0xFFF;
#if (F_CPU > 16000000)
uint16_t t; //For hi cpu clock a 8 bit variable will overflow (CLCM > 0xFF)
#else
uint8_t t; //For low cpu clock computing time is to low for 16bit a variable
#endif
uint16_t cDown = 0x0FFF;
uint8_t bytePos = 0;
uint8_t hbitPos = 0;
@ -245,7 +250,7 @@ uint8_t rxMiller()
resetRxFlags();
do
{
if ((ACSR & (1<<ACI)) && (TCNT1 > CMIN))
if ((ACSR & (1<<ACI)) && (TCNT1 > 1))
{
t = TCNT1;
resetRxFlags();
@ -333,7 +338,7 @@ void checkForNfcReader()
if (ACSR & (1<<ACI)) //13.56 MHz carrier available?
{
AIN1_PRNG &= ~(1<<AIN1_PORT); //Deactivate pull up to increase sensitivity
AIN1_PORT &= ~(1<<AIN1_BIT); //Deactivate pull up to increase sensitivity
while(cdow > 0)
{
@ -390,7 +395,7 @@ void checkForNfcReader()
cdow -= (bytes == 0);
}
AIN1_PRNG |= (1<<AIN1_PORT); //Activate pull up to prevent noise from toggling the comparator
AIN1_PORT |= (1<<AIN1_BIT); //Activate pull up to prevent noise from toggling the comparator
}
ACSR |= (1<<ACI); //Clear comparator interrupt flag
}