Na port1 mikrokontrolera AT89S8253 imam povezan citac smart kartica. Pinovi P1^0 i P1^1 sluze za detektovanje da li je kartica ubacena ili nije, medjutim ne mogu naterati ovu funkciju da proradi. P1^0 treba da je na visokom logickom nivou i da bude output a P1^1 input. U zavisnosti od njegovog stanja zna se da li ima ubacene smart kartice ili ne (0 kada je kartica ubacena, 1 kada nije). Ja sam to probao resiti tako sto u donjem kodu imam sledece kljucne linije koda:
Code:
Code:
sbit HK_PrekidacPrisutnostiDavac = P1^0;//uvek 1
sbit HK_PrekidacPrisutnostiPrimac = P1^1;//proverava da li je HaloKartica prisutna. 0-prisutna, 1-nije prisutna(u slotu, nije ubacina,...)
.
.
.
HK_PrekidacPrisutnostiDavac=1;
.
.
.
if(HK_PrekidacPrisutnostiPrimac==0)
{
}
else if(HK_PrekidacPrisutnostiPrimac==1)
{
}
Code:
sbit HK_PrekidacPrisutnostiDavac = P1^0;//uvek 1
sbit HK_PrekidacPrisutnostiPrimac = P1^1;//proverava da li je HaloKartica prisutna. 0-prisutna, 1-nije prisutna(u slotu, nije ubacina,...)
.
.
.
HK_PrekidacPrisutnostiDavac=1;
.
.
.
if(HK_PrekidacPrisutnostiPrimac==0)
{
}
else if(HK_PrekidacPrisutnostiPrimac==1)
{
}
Medjutim meni ovo ne funkcionise, kao da pinovi ne uzimaju dodeljen vrednosti. A sad sam negde procitao da kad se pinu dodeli vrednost 1 onda se on ponasa kao input?! (http://www.keil.com/download/docs/84.asp) Da li trebam koristiti neku naredbu tipa tris? Svaka pomoc je dobrodosla.
citac_main3_09_05_2011.c
http://www.filefactory.com/fil...6fe/n/citac_main3_09_05_2011.c