>

M

Mickey_2006

Guest
Im 'using AD7731 převodník s T89C51AC2 mikrokontrolérem a já si žádný RDY stržen (signál, že převod je ukončen):

Toto je kód, mohu použít:
(POL pin je vázána HIGH)
nějaké nápady, proč?
Má někdo kód pro řízení AD7731?

fnSendByteAD7731 (0x02) / / Next napsat MODE registrovat
fnWait1ms ();
fnSendByteAD7731 (0x50) / / prvních 8 bitů MODE registrovat
fnWait1ms ();
fnSendByteAD7731 (0x70 (kanál & 0x07)); / / posledních 8 bitů MODE registrovat
fnWait1ms ();

while (AD7731_RDY) _nop_ (); / / Čekat na konverzi do konceneplatné fnSendByteAD7731 (unsigned char byte) (
unsigned char CNT;

pro (CNT = 0; CNT <8; CNT ) (
AD7731_DATA = (byte & 0x80) == 0x80;
AD7731_SCLK = 0; fnWait1ms ();
AD7731_SCLK = 1; fnWait1ms ();
byte = bajt <<1;
)
)

 
Ahoj

Připojení Scop nebo logický analyzátor a verifay signálů podle listuVšechno nejlepšíBobi

 
Líbilo se vám zkontrolovat MCLK OUT?
Pokud je chyba v kódu, měli byste po provedení funkce za účelem získání pomoci.

 
Zde jsou funkce:

neplatné fnSendByteAD7731 (unsigned char byte) (
unsigned char CNT;

pro (CNT = 0; CNT <8; CNT ) (
AD7731_DATA = (byte & 0x80) == 0x80;
AD7731_SCLK = 0; fnWait1ms ();
AD7731_SCLK = 1; fnWait1ms ();
byte = bajt <<1;
)

AD7731_DATA = 1;
)unsigned char fnReadByteAD7731 () (
unsigned char CNT;
unsigned char vysledek = 0;

pro (CNT = 0; CNT <8; CNT ) (
AD7731_SCLK = 0; fnWait1ms ();
výsledek | = (0x01 & AD7731_DATA);
AD7731_SCLK = 1; fnWait1ms ();
výsledek = výsledek <<1;
)

return vysledek;
)Máte nějakou představu, co je špatně?

 

Welcome to EDABoard.com

Sponsor

Back
Top