Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

RS232+C# i zapalanie diody + czujnik czasu reakcji

GrysikWRC 12 Paź 2011 17:50 1570 3
  • #1 12 Paź 2011 17:50
    GrysikWRC
    Poziom 8  

    Cześć, to mój pierwszy temat więc witam wszystkich.
    Zaczynam moją przygodę z rs232 i chciałbym poprzez programik z c# zapalać diodę podpiętą pod dtr (lub rts). Niestety, pomimo komend w programie DtrEnable i DtrDisable potencjał między dtr (4 pin) i masą (5 pin) potencjał między dtr a masą wynosi ciągle 5,68 V. Czy ktoś z większym doświadczeniem wie co robię źle?
    ustawienia portu w menedżerze urządzeń:
    BPS 9600
    bity danych 8
    parzystość brak
    bity stopu 1
    sterowanie przepływem sprzętowe (domyślnie było brak i było tak samo)

    w c#

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0 3
  • #2 13 Paź 2011 14:41
    Luklukowaty
    Poziom 18  

    Pokaż kawałek kodu, w który "zapalasz diodę".

    Po drugie - port RS232 jest konwerterem USB, czy zwykłym portem w PC?

    Po trzecie, czy zgadza Ci się nazwa portu?.

    0
  • #3 13 Paź 2011 16:03
    GrysikWRC
    Poziom 8  

    Kod, którego używam wygląda tak:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    MessageBoxy wyświetlają się prawidłowo.
    Port rs232 to port w stacji diagnostycznej przeznaczonej do mojego komputera, więc liczę, że wszystko działa prawidłowo.
    Nazwa portu w menedżerze urządzeń jest COM1 i tak samo w kodzie programu.

    [EDIT] Boże... przepraszam Was za zamieszanie. Wystarczyło dodać komendy:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    w poszczególnych funkcjach. Tak... wyszedłem na idiotę.

    Konkretnie staram się wykonać czujnik czasu reakcji, więc mam kolejne pytania.
    Chciałbym, żeby była ciągle wysyłana informacja na którymś z kabli, a po zwarciu go z kolejnym zostanie odebrana w komputerze, a program zarejestruje czas od startu wysyłania do odebrania informacji - który kabel(pin) mogę w tym celu wykorzystać i jak przesyłać informację ciągle?
    Pozdrawiam

    0
  • #4 17 Paź 2011 12:11
    Luklukowaty
    Poziom 18  

    Moim zdaniem na Windowsie nie zrobisz tego dokładnie - nie jest to system czasu rzeczywistego, rozbieżność czasowa będzie zbyt duża i nieprzewidywalna.

    Natomiast - jeżeli się uprzesz, to wykorzystaj natywne API systemu zamiast klasy SerialPort - tu masz dokładnie opisany problem związany z prędkością (co prawda wysyłanie, ale tym bardziej istotne dla pętli zwrotnej):

    http://www.hanselman.com/blog/PerformanceOfSystemIOPortsVersusUnmanagedSerialPortCode.aspx


    [EDIT]
    Jeszcze krótki ciekawy art:
    http://jasonf-blog.blogspot.com/2006/08/using-windows-to-drive-high-speed.html

    0