| Autor |
Wiadomość |
vuker Poziom 14

Dołączył: 20 Lut 2003 Posty: 198 Miasto: ? z Wroclawia !
|
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

Dołączył: 15 Maj 2005 Posty: 2627 Miasto: Żory (kiedyś Opole)
|
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

Dołączył: 23 Sty 2008 Posty: 210 Miasto: Lesko
|
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

|
20 Lis 2009 23:45 |
|
|
|
|
|
| Powrót do góry |
|
 |
vuker Poziom 14

Dołączył: 20 Lut 2003 Posty: 198 Miasto: ? z Wroclawia !
|
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

Dołączył: 23 Sty 2008 Posty: 210 Miasto: Lesko
|
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

Dołączył: 20 Lut 2003 Posty: 198 Miasto: ? z Wroclawia !
|
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

Dołączył: 14 Gru 2008 Posty: 96 Miasto: Katowice
|
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

Dołączył: 20 Lut 2003 Posty: 198 Miasto: ? z Wroclawia !
|
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

Dołączył: 23 Sty 2008 Posty: 210 Miasto: Lesko
|
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

Dołączył: 20 Lut 2003 Posty: 198 Miasto: ? z Wroclawia !
|
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 |
|
 |