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

Jak wysłać sygnał 1 na pin portu LPT w Pascalu?

bbiidduull 25 Wrz 2008 17:56 2272 6
REKLAMA
  • #1 5571011
    bbiidduull
    Poziom 28  
    Posty: 1322
    Pomógł: 39
    Ocena: 64
    Witam. Pomoże mi ktoś programować LPT? Tzn pokazać jak wysłać "1" na jakiś pin. Po prostu nie wiem jak to zrobić. Proszę o pomoc.
  • REKLAMA
  • #2 5571096
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 692
    
    program bitowanie;
    const
    BIT0=1;
    BIT1=2;
    BIT2=4;
    BIT3=8;
    BIT4=16;
    BIT5=32;
    BIT6=64;
    BIT7=128;
    
    var
      drukarka:word;
    
    
    
    begin
      drukarka:=$378;   {xxx adres portu danych LPT}
      port[drukarka]:=BIT0 or BIT4;  (ustawienie bitów 0 i 4}
    end.
    
    


    Ten kod raczej nie zadziała w Windows (raczej w DOS-ie), bo one blokują bezpośredni dostęp do portów.
  • REKLAMA
  • #3 5572029
    bbiidduull
    Poziom 28  
    Posty: 1322
    Pomógł: 39
    Ocena: 64
    nie działa ten kod. Wywala mi w Free Pascal błąd: Identifier not found "port"

    Pomoże ktoś ?
  • #4 5572776
    mar614
    Poziom 12  
    Posty: 54
    Pomógł: 6
    Ocena: 4
    Może Free Pascal potrzebuje do tego jakąś bibliotekę? Mi Turbo Pascal wszystko skompilował, uruchomiło się bez wywalenia błędu. Nie sprawdzałem tylko czy rzeczywiście działa na porcie. Poza tym Paweł Es. zapomniał kilku średników.
  • REKLAMA
  • #5 5572793
    bbiidduull
    Poziom 28  
    Posty: 1322
    Pomógł: 39
    Ocena: 64
    To też wiem ze zapomniał. Sciągnę Turbo Pascala i zobacze
  • #6 5577991
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 692
    Podstawienia:

    port[adres]:=wartosc;

    i

    wart:=port[adres];

    na pewno działają w Turbo Pascalu, ale nie wiem czy są zdefiniowane w Free Pascalu (nie używałem go).
  • REKLAMA
  • #7 5583085
    bbiidduull
    Poziom 28  
    Posty: 1322
    Pomógł: 39
    Ocena: 64
    zainstalowałem sobie turbo pascal 7 i jak probuje uruchomic moj napisany program to nic sie nie dzieje

    Dodano po 22 [minuty]:

    jaką masz wersję Turbo Pascala ?

    Dodano po 59 [minuty]:

    znalazłem cos takiego.

    http://wiki.lazarus.freepascal.org/index.php/Hardware_Access

    mógł by mi ktos to rozszyfrować ?

Podsumowanie tematu

✨ Dyskusja dotyczy programowania portu LPT w Pascalu, a konkretnie wysłania sygnału "1" na wybrany pin. Przykładowy kod w Turbo Pascalu wykorzystuje bezpośredni dostęp do portu danych LPT pod adresem $378, ustawiając odpowiednie bity za pomocą operatora OR. Jednak kod ten nie działa w Free Pascalu, gdzie występuje błąd "Identifier not found 'port'", co sugeruje brak wbudowanej obsługi portów sprzętowych. Wskazano, że w Windows bezpośredni dostęp do portów jest zablokowany, co ogranicza działanie takiego kodu do środowisk DOS-owych. Użytkownicy sugerują konieczność użycia specjalnych bibliotek lub sterowników do obsługi portów w Free Pascalu. W dyskusji pojawiła się także wzmianka o dokumentacji dotyczącej dostępu do sprzętu w Lazarusie i Free Pascalu, która może pomóc w rozwiązaniu problemu.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA