logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterowanie portem LPT - język C - pomóżcie laikowi

smoker 28 Lis 2005 21:55 1721 5
REKLAMA
  • #1 2035535
    smoker
    Poziom 18  
    Posty: 394
    Pomógł: 4
    Ocena: 5
    Witam, jestem początkującym programistąw języku C (II klasa liceum, umiem napisać prosty program). Zrobiłem sobie układ 8 ledów podłączonych do wyjść LPT'a i chciałbym napisać samodzielnie program, który będzie mógł z poziomu konsoli nimi sterować. Używam Bloodshed Dev-C++ i chciałbym se dowiedzieć jakie komendy sterują portem LPT. wszystko co znalazłem w internecie, jak i na tym forum wywalało ten sam błąd - " [Linker error] undefined reference to `xxx' " gdzie xxx to komendy które znalazłem w internecie. Dodawanie rozmaitych bibliotek nie pomagało. Nie można zrobić tego w prostszy sposób, np:

    jakas_komenda_out (0x378 , 00100010);

    komenda wystawienia | (adres portu , dane do wypisania na wyjścia)
    jedynki na wybranych |
    pinach


    Z góry dziękuję za każdą pomoc :)
  • REKLAMA
  • #2 2035612
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    smoker napisał:
    wszystko co znalazłem w internecie, jak i na tym forum wywalało ten sam błąd - " [Linker error] undefined reference to `xxx' " gdzie xxx to komendy które znalazłem w internecie.
    Doczytaj dokładnie opis a wszystko stanie się jasne.
  • REKLAMA
  • #3 2035618
    Tommy82
    Poziom 41  
    Posty: 12141
    Pomógł: 455
    Ocena: 1073
    
    Send_port(short Port, short Value)
    {
       asm mov dx, Port
       asm mov ax, Value
       asm out dx, ax
       return 1 ;
       }
    


    Masz tu wstawke asemblerowa
    port to adres portu
    a value to wartosc dziesietna (czyli najpierw to swoje 01010010 muszis zaminenic na dziesietne )

    w dev nigdy nie pisalem ale bedzie chyba biegac
    najwazniejse za 3 linijki asemblera
    jesli chcesz to odpalac z pod xp to postaraj sie o userporta (i go odpakl prze przed odpalaniem programiku)
  • REKLAMA
  • #4 2036333
    smoker
    Poziom 18  
    Posty: 394
    Pomógł: 4
    Ocena: 5
    Dzięki Tommy82 za pomoc, ale nie wiem co z tymi linijkami assemblera zrobić i jak to wpakować do C, próbowałem kilku sposóbów i jak na razie nic. Mógłbyś napisać cały program od poczatku do końca? Tylko tak w miarę przejżyście, żeby to miało walory dydaktyczne :D
  • REKLAMA
  • Pomocny post
    #5 2036662
    Tommy82
    Poziom 41  
    Posty: 12141
    Pomógł: 455
    Ocena: 1073
    TfrmMain::SendPort(short Port, short Value)
    {
       asm mov dx, Port
       asm mov ax, Value
       asm out dx, ax
       return 1 ;
       }
    


    Do bulidera wkladasz taka procedurke (w dev nie pisalem nigdy) i pod 98 wymiata
    pod xp muszisz odpalic np userporta
    niebede go tu dawal bo plik jest w sieci wiec oszczedze moderatorowi pracy
    Port mozesz zdefiniowac jako adres portu na stale (bo jesli chcesz to odpalac na swoim kompie to adres lpt sie raczej nie zmieni)
    a value to wartosc ktora chcesz wyslac [/quote]
  • #6 2259347
    smoker
    Poziom 18  
    Posty: 394
    Pomógł: 4
    Ocena: 5
    Ok dzięki wszystko działa :]
REKLAMA