 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
racman1 Član

Pridružen-a: Tor 05 Dec 2006 12:43 Prispevkov: 12 Aktiv.: 0.05 Kraj: Kranj
|
Objavljeno: Tor Dec 05, 2006 1:19 pm Naslov sporočila: PIC+DELPHI+COM port |
|
|
Zanima me, ce ima kdo kaksne izkusnje z povezavo PIca z delphijem (s serijskim portom od Dejana Cernile)?
Kaksen primer za zacetek?
LP; Rok |
|
Nazaj na vrh |
|
 |
jur Član


Pridružen-a: Pet 02 Dec 2005 14:45 Prispevkov: 5142 Aktiv.: 21.71 Kraj: [color=zelena]Ljubljana[/color]
|
Objavljeno: Tor Dec 05, 2006 1:33 pm Naslov sporočila: |
|
|
Delphi procedura za nastavitev com porta:
//hitrost je 2400 baud, port je COM1
Koda: |
hand:=createfile(PChar(COM1),GENERIC_READ+GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
If hand=INVALID_HANDLE_VALUE then
begin
form1.Caption:=comport+' Port open error';
sleep(2000);
exit;
end;
getcommstate(hand,dcb);
dcb.baudrate:=cbr_4800;
setcommstate(hand,dcb);
setupcomm(hand,256,256);
getcommtimeouts(hand,tmo);
tmo.readIntervalTimeout:=300;
tmo.readTotalTimeoutMultiplier:=300;
tmo.readTotalTimeoutConstant:=100;
setcommtimeouts(hand,tmo); |
Pisanje na com port:
Koda: |
writefile(hand,trig[1],length(trig),written,nil); |
//trig je en string. Tu pljune na com port prvi znak iz tega stringa.
Branje iz porta:
Koda: |
readfile (hand,data,52,read,nil); |
//v spremenljivko data (string) prebere 52 bytov iz com porta
To je vse, kar potrebuješ.
Jur |
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Tor Dec 05, 2006 2:17 pm Naslov sporočila: |
|
|
Tako kot je Jur napisal - v Delphiju uporabiš Windows API podsistem.
Za PIC-a pa je ogromno firmware-a na voljo, ki izkorišča serijsko komunikacijo. Vse pa je odvisno od tipa uC... _________________ I'm going to stand outside, so if anyone asks, I'm outstanding 
Nazadnje urejal/a aly Tor Dec 05, 2006 3:07 pm; skupaj popravljeno 2 krat |
|
Nazaj na vrh |
|
 |
jur Član


Pridružen-a: Pet 02 Dec 2005 14:45 Prispevkov: 5142 Aktiv.: 21.71 Kraj: [color=zelena]Ljubljana[/color]
|
Objavljeno: Tor Dec 05, 2006 3:02 pm Naslov sporočila: |
|
|
Help za API (createfile, getcommstate,setcommstate,...) v delphiju se nahaja pod: help > windows SDK.
Stvar zgleda komplicirana, pa ni. Zgoraj navedeni primer odpre com port kot datoteko, v katero se piše in bere. Tiste nastavitve okoli timeouta so zato, da program ne ostane na mestu, čakajoč na znak, ki ga utrgani mikrokontroler ne pošlje, pa bi ga moral.
Jur |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|