Regulamin | Punkty | Dodaj... | Ostatnie | Szukaj | Rejestracja | Zaloguj


c++ ( c plus plus ) lpt pod dos



 
Napisz nowy temat  Odpowiedz do tematu      Strona Główna -> Forum elektroda -> Programowanie ogólne -> c++ ( c plus plus ) lpt pod dos
Angielska wersja
Autor Wiadomość
vuker
Poziom 14
Poziom 14

Dołączył: 20 Lut 2003
Posty: 198
Miasto: ? z Wroclawia !

Post 20 Lis 2009 23:04   

c++ ( c plus plus ) lpt pod dos


Witajcie

Na początku proszę o konkretne info a nie komentarze jakim to jestem debilem...

Od dwóch dni staram się wysłać na port LPT i nie potrafię.
Pisze pod dev , potrzebuje by napisany program sterował lpt, wysyłał dane z pod konsoli a ściśle mówiac z pod dosa.

Znalazłem wstawkę asm
Kod:

void zapisz(BYTE dana){
asm{
mov dx,0378h
mov al,dana
out dx,al
}
//ewentualne opuznienie
}

BYTE odczytaj(){
BYTE tmp;
asm{
mov dx,0378h
in al,dx
mov tmp,al
}
return tmp;
//jakis delay stc
}


Przy probie kompilacji zgłasza :


Kompilator: Default compiler
Building Makefile: "C:\Dev-Cpp\Makefile.win"
Wykonywanie make clean
rm -f main.o Projekt1.exe

g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"

main.cpp:7: error: variable or field `zapisz' declared void
main.cpp:7: error: `BYTE' was not declared in this scope
main.cpp:7: error: expected `,' or `;' before '{' token

main.cpp:9:8: invalid digit "8" in octal constant
main.cpp:16: error: `BYTE' does not name a type[/code]
Powrót do góry
   
Dżyszla
Poziom 23
Poziom 23

Dołączył: 15 Maj 2005
Posty: 2627
Miasto: Żory (kiedyś Opole)

Post 20 Lis 2009 23:14   

Re: c++ ( c plus plus ) lpt pod dos


1. Pisz kod w znacznikach [ code ]
2. Pisz poprawnie (słownik ort.!)
3. Nie ma zmiennej BYTE w gcc - jest co najwyżej unsinged char
4. jak co zrobić ze wstawką?
5. To spod konsoli (jakiego systemu?) czy spod DOSa?
Powrót do góry
   
wrych
Poziom 15
Poziom 15

Dołączył: 23 Sty 2008
Posty: 210
Miasto: Lesko

Post 20 Lis 2009 23:45   

Re: c++ ( c plus plus ) lpt pod dos


Podam Ci przykład, jaki u mnie działa:
Kod:
#include <iostream>
using namespace std;

int port=0x378;
int dane=0x01;
void outport(int port,int dane);

int main()
{

      outport(port,dane);
      cout <<"D0 ustawione na 1";
      getchar();
      return 0;
};

void outport(int port,int dane)
{
      asm(".intel_syntax noprefix");   //asembler - INTEL
      asm("mov dx, _port");           //do rej DX podajemy adres portu
      asm("mov al, _dane");           // do rejAL podajemy bajt danych
      asm("out dx, al");            // wysylanie
      asm(".att_syntax prefix");   //żeby nie było błędu kompilacji.
};

Skompilowane w DEV-C++, system Windows XP, porty odblokowane za pomocą "User Port". Przykład ten kiedyś znalazłem w sieci...

Dodano po 2 [minuty]:

Zauważ, że wstawki asemblerowe w DEV_C++ robi się nieco inaczej.
Powrót do góry
   
Google
AdSense
Google Adsense


Post 20 Lis 2009 23:45   





Powrót do góry
   
vuker
Poziom 14
Poziom 14

Dołączył: 20 Lut 2003
Posty: 198
Miasto: ? z Wroclawia !

Post 21 Lis 2009 00:12   

Re: c++ ( c plus plus ) lpt pod dos


Wrych wielkie dzieki !

Tego oczekiwalem. Konkretnie i w 100% na temat.
Jutro podepne miernik i "pobawie" sie kodem.
Powrót do góry
   
wrych
Poziom 15
Poziom 15

Dołączył: 23 Sty 2008
Posty: 210
Miasto: Lesko

Post 21 Lis 2009 00:28   

Re: c++ ( c plus plus ) lpt pod dos


To było na elektrodzie: Link. Zobacz ten link.

Dodano po 5 [minuty]:

A kodem możesz pobawić się bez miernika. Wystarczy Ci "Parallel Port Monitor"
Link. Powodzenia...
Powrót do góry
   
vuker
Poziom 14
Poziom 14

Dołączył: 20 Lut 2003
Posty: 198
Miasto: ? z Wroclawia !

Post 21 Lis 2009 09:03   

Re: c++ ( c plus plus ) lpt pod dos


Po skompilowaniu program "lpt"wiesza sie (oczywiscie pod konsola z pod xp'ka). Pod czystm dosem jest ok (freedos).
Powrót do góry
   
ekomont
Poziom 12
Poziom 12

Dołączył: 14 Gru 2008
Posty: 96
Miasto: Katowice

Post 21 Lis 2009 12:01   

Re: c++ ( c plus plus ) lpt pod dos


Witam. XP nie ma dosa...to jest emulacja i w tym przypadku można zrobić to albo poprzez bibliotekę inpout32.dll, albo tak jak jest, z tą równicą, że instaluje się GIVEIO.sys...to pozwala na bezpośredni dostęp do portu...

Istnieje jeszcze 3 sposób...napisać program w borland C 2.0 lub 3.0 lub podobnym dosowym kompilatorem i kompilować jako dos-exe...wówczas działa pod xp
Powrót do góry
   
vuker
Poziom 14
Poziom 14

Dołączył: 20 Lut 2003
Posty: 198
Miasto: ? z Wroclawia !

Post 21 Lis 2009 14:36   

Re: c++ ( c plus plus ) lpt pod dos


Jest kolejny problem- niestety tak skompilowany program nie uruchamia sie pod "czystym" dosem. Dos podaje komunikat ze program jest aplikacja nie dosowa ( wiadomo o co chodzi).


Wiec to co napisaem wyżej jest błedne.
Pod konsolą w xp,ku wiesza sie a pod dosem nie uruchamia sie.

Co dalej ?

Program ma dzialac pod dosem (freedos), do dyspozycji mam Dev-C++ (XP) , czy jest mozliwe napisanie takiej aplikacji przy takich warunkach?
Powrót do góry
   
wrych
Poziom 15
Poziom 15

Dołączył: 23 Sty 2008
Posty: 210
Miasto: Lesko

Post 22 Lis 2009 09:06   

Re: c++ ( c plus plus ) lpt pod dos


Jeśli zdecydujesz się napisać to w Turbo Pascalu mogę nieco pomóc.
1) Ściągnij darmowy kompilator Turbo Pascala wersja 5.5
2) Odblokuj porty w XP za pomocą UserPort (znajdziesz w sieci wraz z opisem)
3) Napisz program i przetestuj go usiebie pod Windowsem (na początek zapoznaj się z tym Link)
4) Plik wykonywalny *.exe powinien bez problemu działać pod Dosem (w razie komplikacji możesz go skompilować pod Dosem - wystarczą trzy pliki tpc.exe, turbo.tpl i zrodło.pas oraz dyskietka na której je przeniesiesz)
Powrót do góry
   
vuker
Poziom 14
Poziom 14

Dołączył: 20 Lut 2003
Posty: 198
Miasto: ? z Wroclawia !

Post 22 Lis 2009 12:07   

Re: c++ ( c plus plus ) lpt pod dos


Heh to zabawne bo wlasnie w nocy zabraem sie za pascala (freepascal).
Zabieram sie za sciaganie TP5.5.
Powrót do góry
   
Napisz nowy temat  Odpowiedz do tematu      Strona Główna -> Forum elektroda -> Programowanie ogólne -> c++ ( c plus plus ) lpt pod dos
Strona 1 z 1


[ Page generation time: 0.09 seconds ]

Regulamin || Administrator || Moderatorzy || Nasze bannery || Kontakt
elektroda.pl temat RSS