www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

PIC+DELPHI+COM port

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
racman1
Član
Član



Pridružen-a: Tor 05 Dec 2006 12:43
Prispevkov: 12
Aktiv.: 0.05
Kraj: Kranj

PrispevekObjavljeno: Tor Dec 05, 2006 1:19 pm    Naslov sporočila:  PIC+DELPHI+COM port Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.71
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Tor Dec 05, 2006 1:33 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.71
Kraj: Kranj - struževo

PrispevekObjavljeno: Tor Dec 05, 2006 2:17 pm    Naslov sporočila:   Odgovori s citatom

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 Smile


Nazadnje urejal/a aly Tor Dec 05, 2006 3:07 pm; skupaj popravljeno 2 krat
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.71
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Tor Dec 05, 2006 3:02 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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