Ovladani serioveho portu ve Visual C++

zoodiskus@mbox.vol.cz zoodiskus
Středa Březen 17 12:03:12 CET 2004


Uz me ten Mrkvosoft vazne se.. !!

Pisu sw, ktery z modulu osazenych AT89C2051 pres RS-485 cte data.
Zadny velky zazrak, v podstate jde o to z PC poslat na seriovy port balik dat (10-bytu) na ktery odpovi 
osloveny modul. Ovladani smeru komunikace po RS-485 je pres RTS a kontrolu spravnosti dat zajistuje CRC16.

V podstate mi to chodi, ale nikoliv bez problemu.


Pro ovladani portu jsem pouzil MSCOMM32.ocx a zde jsem narazil na prvni zadrhel. Ackoliv mam kompletni dokumentace k 
Visual Studiu (2ks CD) o pouziti MSCOMM v C++ se zde taktne mlci a tak jsem byl nucen postupovat metodou pokus omyl a 
vyznam jednotlivych funkci dedukovat z jejich nazvu.

Kupodivu to chodi k plne spokojenosti a to az do okamziku kdy program vypnu. Pri druhem spusteni programu jiz pripojeny modul
nereaguje a pomuze pouze jeho reset.

Napadlo me, ze pri zavreni portu dojde na portu k stavu, ktery AT89C2051 vyhodnoti jako pokus o komunikaci (komunikace v aT89C2051 je rizena prerusenim)
a program v Atmelu mi zatuhne. Rozumejsi vysvetleni me nenapadlo.

Pro sledovani komunikace na protu jsem pouzil program Portmon a v tom okamziku vse ustalo a komunikace funguje skvele bez ohledu na to kolikrat ridici sw
na PC vypnu a zapnu.

Cele to bezi pod Windows 2000 a chova se to stejne i pokud vyhodim prevodniky na RS485 a komunikuji primo pomoci RS-235. Pokud mam zapnuty portmon je vse OK.
A ted babo rad, respektive:

1. Nevite kde sehnat nejakou pouzitelno dokumentaci pro pouziti MSComm ve VisualC++ ?
2. Nevite o nejakem jim vhodmejsim zpusobu ovladani protu v VisualC++ ?
3. Nesetkal jste se nekdo s podobnym problemem, pripadne nemate napad cim by to mohl byt ?
4. Nevite o programu pro sledovani komunikace na portech pro Win2000 ? Neco jako je Portmon, ktery mi naprosto vyhovuje,
   ale PC po jeho pouziti nelze uspat a pomuze pouze znovunajeti systemu a to mi vadi.

Predem dekuji.





Další informace o konferenci Hw-list