Bardzo trudne pytanie

0

Cześć

Mam pewien problem i potrzebuje jakichś wskazówek lub gotowej procedury.
Mam port szeregowy ( COM ) i do niego chcę podłączyć mikrostyk.
A następnie programowo sprawdzić czy jest on zwarty czy rozwarty .

Jeżeli ma ktoś jakiś pomysł na zrobienie czegoś takieg to prosiłbym o pomoc (schemat i procedurka najlepiej w delpchi ale moze byćteż w C lub C++).

0

Mikrostyk podłącz do lini gotowości COM-a do pracy ( sory nie pamiętam musisz poszukać dokładnego opisu styków COM ) poczym sprawdzaj czy COM jest gotów do od pracy.

0

Krecik, autorowi posta chyba chodziło o to, jak programowo to sprawdzić, a nie jak podłączyć... :-/

0

Jeżeli Cie to interesuje, to łatwo to można zrobić z LPT. Styk podłączasz pod któryś z pinów wejściowych (10-13,15) a drugi koniec do uziemienia (piny 18-25). Zczytujesz wartośc z portu (adres $379, chba że masz ustawiony inny, to będzie to adres bazowy + 1) i sprawdzasz konkretny bit.
Pinowi 10 odpowiada bit 6,
11 - 7
12 - 5
13 - 4
15 - 3
Niektóre bity mogą być zanegowane.
Jak uzywasz windowsa nt, 2k, xp, to do obsługi portu będziesz potrzebować jakiegos modułu dodatkowego np. zlportio

0

adf88 - mógł byś dokładniej to opisać.

//a co tu można dokładniej??? pq

0

chodzi mi o jakiś <ort>shemacik </ort>tego jak mógłbyś narysowć i jakąś procedurkę do tego .

0

Nie należy także zapominać o przestawieniu portu w tryb dwukierunkowy.

0

Artykuł o porcie COM masz w artykule

http://4programmers.net/view.html?id=243

ale moim zdaniem najlepszy komponent do obsługi portu to rsport, w download (z polskim opisem)

http://4programmers.net/download.html?id=932

0

uses zlportio; (musisz sciagnac, poszukaj na google)
var zlaczony: boolean;
zlaczony := (portreadb(base + 1) and x) <> 0; gdzie x to 2^(numer bitu) odpowiadający pinowi do którego podpiąłeś mikrostyk.
base sprawdzisz: menadżer urządzeń -> porty(COM i LPT) -> port drukarki (LPT1) -> właściwości -> zakładka zasoby -> Zakres We/Wy 0xxx-0yyy
xxx - to ta liczba, prawdopodobnie 378 (to liczba heksadecymalna, czyli w delphi wpiszesz $378)

//Dopisane do poniżej
racj 2^, tak mi sie jakoś palnęło, już poprawiłem
a co do zlportio to postawiłem na uniwersalne rozwiązanie

0

zlaczony := (portreadb(base + 1) and x) <> 0; gdzie x to numer bitu odpowiadający pinowi do którego podpiąłeś mikrostyk.

Co nie jest prawdą, bo x powinien być potęgą : x=2^(nr. bitu), numerując oczywiście od zera.

Moja propozycja to :
Mikrostyk do masy i pin12
czytasz liczbę z portu Bazowy+1
robisz: liczbę and 32 {2 do potęgi 5}
jesli wynik = 0 - styk zwarty, jeśli <>0 - styk rozwarty

Jeśli używasz windozy ME lub starszej, odradzam stosowanie zlp.... - robi dużo niepotrzebnych rzeczy, lepiej napisać wstawkię w asmie, jeśli masz nowszą windozę, nie masz wyjścia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0