AT89S8252 Port "lepenie"

G

GrandAlf

Guest
Mám program, pôvodne písaný s Bascom pre 89S8252. Aby to išlo o niečo rýchlejšie, som sa rozhodol prepísať do "C" (E * K * i * l). Mám problém s port 1, je to rozkol medzi vstupom a výstupom na rôzne piny. Vstupnej strane je aktívny dolnej cez opto, s 4K7 pullups priamo na kolíky. Problém je, keď vstupné PIN ide nízke, zvyčajne zostáva nízky, aj keď je omáčka sa vracia do vysokej. Resetovanie vymaže cpu je na vysokej znova. To všetko funguje na Bascom prog, takže hardware je v poriadku. 8052 série nezdá sa, že sa riadenie smeru, takže to nemôže byť príčinou. Trochu zmätený týmto. Ja používam AT898252.h, a pomocou "if (P1_7 == 0) {}, atď" pre čítanie. Akákoľvek pomoc ocenili.
 
Mali by ste byť veľmi opatrní pri použití portu 8051 "syntakticky rozdelené" (niekoľko vstupov, niekoľko výstupov), pretože pri zmene portu, ako je tento: port | = 0x1C, Ak sa jeden z vašich vstupov je nízka, zatiaľ čo vy ste to urobil prepísať vstup a stáva sa výstup, ktorý je nízka a zostáva nízka :-( K prekonaniu tohto napíšte vstupy "1", čo znamená, že vo vyššie uvedenom príklade za predpokladu, že Bit7 a 6 port sa používa ako vstupy: port | = 0xDC;. Oba vstupy sú písané s "1", ale ako 8051 môže vytiahnuť piny nízka, že nemá "lock" vstup, ak je to nízka počas operácie zápisu dúfam, že to pomôže
 
C-Man, to pomáha, ja kontrolujem čas. Ďakujem vám za váš vstup.
 

Welcome to EDABoard.com

Sponsor

Back
Top