Avatar billede apocryphal Nybegynder
05. april 2002 - 20:18 Der er 5 kommentarer og
1 løsning

Parallelport kommunikation fra Microsoft Visual C++

Hey.

Jeg skal skrive et program, der kan sende noget data til noget hjemmelavet hardware jeg har, men det er helt forbandet så besværligt det er.

Jeg har ingen vidligere erfaring med hverken C/C++, men jeg har erfaring med Java, som jeg dog har skrottet til dette formål.

Jeg er kommet frem til dette C program:
#include <stdio.h>
#include <dos.h>

int main(){
  int a,b,c,d;
  int Data = 0x378;
  int Status = Data + 1;
  int Control = Data +2;

  for(b=0;b<1000;b++){
    d=1;
    for(a=0;a<6;a++){
      outb(Data,d);
      d=d*2;
      usleep(1000000);
    }
    for(a=0;a<6;a++){
      outb(Data,d);
      d=d/2;
      usleep(1000000);
    }
  }
}

Men det vil ikke virke...
Den vil godt kompilere med min gcc-compiler, men den virker ikke.

Den vil dog ikke kompilere i Visual Studio .NET.

Nogle der kan skrive et hurtigt eksempel på, hvordan jeg sender et tal til parallelporten?

Det er outb()-metoden Visual Studio er efter. Noget med undefined identifier eller sådan noget.

--
Jonas
Avatar billede nicki Nybegynder
06. april 2002 - 22:29 #1
Med på en lytter
Avatar billede apocryphal Nybegynder
07. april 2002 - 15:18 #2
Jeg fik ovenstående program til at virke på Windows ME, så det er tilsyneladende Windows NT's ting med, at det skal være en driver/kernel der tilgår Porten.

Men jeg spekulere stadig på, hvorfor det ikke vil kompilere i VS.NET

--
Jonas
Avatar billede jackonlinux Nybegynder
07. april 2002 - 18:48 #3
Problemet med at kompilere disse er at (så vidt jeg husker) at standard port funktioner til DOS!! er skrevet af Borland! Disse har Microsoft ikke med i sin pakke, men de har vist skrevet andre med "_"outportb()
..
En anden er at du vil gerne ha' adgang til din hardware via en win32 kerne.. Jo ja det kan du godt --via API kald..

Men hvis jeg var dig ville jeg granske lidt mere i Windows Kernel Driver udvikling..
Hvor du bl.a. lærer at programmere til forskellige lag i HAL laget.

Microsoft har et gratis bundle til at udvikle det med.. de såkaldte DDK'er...
Jeg ved godt det er temmelig rough, men det er egentlig det eneste rigtige..
LINK: http://www.microsoft.com/DDK/

Hvis du ikke gider 'bøvlet' -kan du så ikke smide compiler beskederne ud?
Avatar billede jackonlinux Nybegynder
07. april 2002 - 18:50 #4
Jeg har forresten skrevet et interrupt styret program, men det er til RS-232 kommunikation...
Har det interesse sååå...  må du lige sige til
Avatar billede apocryphal Nybegynder
07. april 2002 - 19:40 #5
Ok, jeg må leve med det på den måde.

Jeg forsøger mig med driver-siden hos Microsoft =)

Tak for hjælpen

--
Jonas
Avatar billede soepro Nybegynder
08. april 2002 - 08:23 #6
Se også http://www.eksperten.dk/spm/100631 hvor vi har behandlet spørgsmålet før.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester