| Author |
Message
|
vuker Poziom 14

Joined: 20 Feb 2003 Posts: 194 Location: ? z Wroclawia !
|
#1
20 Nov 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
| Code: |
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]
|
|
| Back to top |
|
 |
Dżyszla Poziom 24

Joined: 15 May 2005 Posts: 4526 Location: Żory (kiedyś Opole)
|
#2
20 Nov 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?
|
|
| Back to top |
|
 |
Google

|
#
20 Nov 2009 23:14 |
|
|
|
|
|
| Back to top |
|
 |
wrych Poziom 16

Joined: 23 Jan 2008 Posts: 290 Location: Lesko
|
#3
20 Nov 2009 23:45 Re: c++ ( c plus plus ) lpt pod dos |
|
|
|
Podam Ci przykład, jaki u mnie działa:
| Code: |
#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.
|
|
| Back to top |
|
 |
vuker Poziom 14

Joined: 20 Feb 2003 Posts: 194 Location: ? z Wroclawia !
|
#4
21 Nov 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.
|
|
| Back to top |
|
 |
Google

|
#
21 Nov 2009 00:12 |
|
|
|
|
|
| Back to top |
|
 |
wrych Poziom 16

Joined: 23 Jan 2008 Posts: 290 Location: Lesko
|
#5
21 Nov 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...
|
|
| Back to top |
|
 |
vuker Poziom 14

Joined: 20 Feb 2003 Posts: 194 Location: ? z Wroclawia !
|
#6
21 Nov 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).
|
|
| Back to top |
|
 |
ekomont Poziom 13

Joined: 14 Dec 2008 Posts: 124 Location: Katowice
|
#7
21 Nov 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
|
|
| Back to top |
|
 |
vuker Poziom 14

Joined: 20 Feb 2003 Posts: 194 Location: ? z Wroclawia !
|
#8
21 Nov 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?
|
|
| Back to top |
|
 |
Google

|
#
21 Nov 2009 14:36 |
|
|
|
|
|
| Back to top |
|
 |
wrych Poziom 16

Joined: 23 Jan 2008 Posts: 290 Location: Lesko
|
#9
22 Nov 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)
|
|
| Back to top |
|
 |
vuker Poziom 14

Joined: 20 Feb 2003 Posts: 194 Location: ? z Wroclawia !
|
#10
22 Nov 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.
|
|
| Back to top |
|
 |