/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Lytte på comport ??
Fra : PeterPirat


Dato : 11-09-01 10:21

Jeg skal hente data fra en vægt..
Der kommer masser af data fra vægten så det er ikke der problemer
ligger...
Men...
Hvordan får jeg det ind i c++?
Dette har jeg at arbejde med :

#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#define PADR 0x3f8 //Base adresse for COM1
serielport.

void ser_init()
{
_outp(PADR+3, 0x80); //Sæt DLA-Bit (=> 3f8 & 3f9:
Divisor)
_outp(PADR, 0x18); //Divisor=0018H ==>
_outp(PADR+1, 0x00); // 4800 b/s.
_outp(PADR+3, 0x03); //Reset DLAB og sæt N 8 1.
}

int recv_ch()
{ //Læs LinieStatusRegister og
while (!(_inp(PADR+5) & 0x01)); // vent til tegn er parat (bit
0).
return(_inp(PADR)); //Hent det så og returner det.
}

void skrivud(int tegn)
{
putch(tegn); //Skriv tegn på skærm.
}

void main()
{
int tegn;
ser_init();
do
{
tegn = recv_ch(); //Læs et tegn fra seriel-porten
skrivud(tegn); // og skriv det.
}
while(tegn != 0x1b);
}

Jeg kender desværre ikke :
_outp(PADR+3, 0x80); //Sæt DLA-Bit (=> 3f8 & 3f9:
Divisor)
_outp(PADR, 0x18); //Divisor=0018H ==>
_outp(PADR+1, 0x00); // 4800 b/s.
_outp(PADR+3, 0x03); //Reset DLAB og sæt N 8 1.

Hvor finder jeg dokumentation om dette ???
Jeg har ledt på msdn.microsoft.com, men det er ret uoverskueligt(eller
jeg kan ikke finde det)

Nogen der kan hjælpe ???

/Erik


--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


 
 
Michael Rasmussen (11-09-2001)
Kommentar
Fra : Michael Rasmussen


Dato : 11-09-01 11:07

"PeterPirat" <PeterPirat.news@kandu.dk> wrote in message
news:mEkn7.9937$sk1.362981@news010.worldonline.dk...
> Jeg skal hente data fra en vægt..
> Der kommer masser af data fra vægten så det er ikke der problemer
> ligger...
> Men...
> Hvordan får jeg det ind i c++?
> Dette har jeg at arbejde med :
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <dos.h>
> #include <conio.h>
> #define PADR 0x3f8 //Base adresse for COM1
> serielport.
>
> void ser_init()
> {
> _outp(PADR+3, 0x80); //Sæt DLA-Bit (=> 3f8 & 3f9:
> Divisor)
> _outp(PADR, 0x18); //Divisor=0018H ==>
> _outp(PADR+1, 0x00); // 4800 b/s.
> _outp(PADR+3, 0x03); //Reset DLAB og sæt N 8 1.
> }
>
> int recv_ch()
> { //Læs LinieStatusRegister og
> while (!(_inp(PADR+5) & 0x01)); // vent til tegn er parat (bit
> 0).
> return(_inp(PADR)); //Hent det så og returner det.
> }
>
> void skrivud(int tegn)
> {
> putch(tegn); //Skriv tegn på skærm.
> }
>
> void main()
> {
> int tegn;
> ser_init();
> do
> {
> tegn = recv_ch(); //Læs et tegn fra seriel-porten
> skrivud(tegn); // og skriv det.
> }
> while(tegn != 0x1b);
> }
>
> Jeg kender desværre ikke :
> _outp(PADR+3, 0x80); //Sæt DLA-Bit (=> 3f8 & 3f9:
> Divisor)
> _outp(PADR, 0x18); //Divisor=0018H ==>
> _outp(PADR+1, 0x00); // 4800 b/s.
> _outp(PADR+3, 0x03); //Reset DLAB og sæt N 8 1.
>
> Hvor finder jeg dokumentation om dette ???
> Jeg har ledt på msdn.microsoft.com, men det er ret uoverskueligt(eller
> jeg kan ikke finde det)
>
> Nogen der kan hjælpe ???
>
> /Erik
>
>
> --
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"
>

Ralph Brown har en masse informationer om div. porte osv.:
http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html

venlig hilsen
Michael Rasmussen



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste