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.

0

Dzięki wszystkim myśle że teraz może uda mi się to jakoś zmontować.
[browar]

0

...sprawdzasz konkretny bit.
Pinowi 10 odpowiada bit 6,
11 - 7
12 - 5
13 - 4
15 - 3
...

gdzie znajdę (lub może mi ktoś poda?) informację dotyczącą który pin odpowiada któremu bitowi... dla wszystkich pinów w porcie LPT... przy okazji... COM też się przyda...

0

niezle jaja sie robia gdy jako kontroler portu LPT siedzi uklad Goldstara, odczyt jest pod tym samym adresem co zapis czyli $378, mniejsza o to, lepsze i tak podlaczyc procka pod coma, albo np. uklad (uklady) PCF8564 pod LPT sterowany przez magistrale I2C, wtedy dopiero zaczynaja sie mozliwosc ;-)

0

[glowa]
do powyszej wypowiedzi:
nie uklad PCF8564, tylko PCF8574 lub PCF8574A
;-) ;-) ;-)

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