Löytyykö Delphi osaajaa kuka osaisi kirjoittaa "valmiin" koodin pätkän jolla saisin luettua sarjaportin CTS-pinnin tilan ?????
Ilmeisesti laittamalla assya sekaan se onnistuu.....
Käytän Delphi 5:sta.
Ilmeisesti laittamalla assya sekaan se onnistuu.....
Käytän Delphi 5:sta.
Vastaukset 4
Vanhimmat
En osaa delphiä, mutta oisko tosta sivusta apua. Näyttäs onnistuvan win32 funktiolla GetCommState joka palauttaa kontrolliblokin ja sieltä valkkaa vaan sen CTS-bitin
http://www.commlinx.com.au/delphi_comms.htm
kirjoitan tämän ulkomuistista, toivottavasti menee oikein, eli pelkän cts pinnin lukeminen on helppoa assamilla, porttia pollataan niin kauan kunnes cts nousee ykköseksi, eli cts:n tila vaihtuu.
Mukaan on laitettu myös näppäimistön pollaus, muuten et pääse ikinä ulos jos portti ei toimi, siinä tapauksessa... paina ESC.
tässä se on.
procedure TForm1.Button1Click(Sender: TObject);
label sss,ende;
begin
asm
push dx
mov dx,$3f8 6 //com 1=3f8h com 2=2f8h
cli
//**************************************
sss:
in al,60h
and al,80h
je ende // jos ei toimi,niin esc.lopettaa
//***************************************
in al,dx //pollaa CTS:sää
shl al,1
jnc sss // jos pinni=1 poistu
ende:
sti
//*********************************
in al,60h
xor al,80h
out 60h,al //nollaa näppäimistö
//***********************************
pop dx
end;
end;
olisko ollut niin että rekisteri mistä sen cts pinnin voi lukea on niin että se cts onkin bitti 0, silloin kohtaan shl al,1 pitää laittaa shr al,1
Joo, toihan poelitti hyvin, vielä kun sais samanlaisen o-tila luupin.
Tarkoitus on tehdä ohjelmallinen Flip-Flop.