Op 10 juli 2003 20:46:16 schreef elektron_:
- ofwel rechtstreeks met 6 Leds, dan staan ze per paar.
één LED werkt op - uitgang andere op + als uitgang.

Ik denk dat ik deze mogenlijkheid uns uitprobeer..
Maar ik heb nog een vraag, hoe moet ik die aansturen met qbasic?

De poort adres van de serieele poort is 3F8h van COM 1
en van COM 2: 2F8h
ff opgezocht

OUT &H3F8, ?
OUT &H2F8, ?

dus mijn vraag is eigenlijk wat op het ? moet staan.

Groeten Randy

Randy,

Hier is een schema voor 16 of 32 uitgangen op de serieele poort.

Is zo te zien vrij eenvoudig te maken.

http://ourworld.compuserve.com/homepages/Bill_Bowden/page3.htm

Voor het aan sturen van de seriele poort in QB kan je zover ik mij nog kan herinneren. Het open commando gebruiken.

OPEN COM1: 9600,8,n,1 for OUTPUT as #1

en dan er iets naar toe sturen met

Print #1,.........

Maar volgens mij hoef je geen "OUT" commando te gebruiken.

maar kijk daar voor in je help functie van QB of kijk hier even www.programmersheaven.com

groetjes Antonie

Zo kan het ook nog maar aansturen lijkt me dan ietsje moeilijker :)

Bedankt Antonie Vonk!
Ik zal um uns een keer bouwen over 3 weken als ik onderdelen ga halen...

Op 11 juli 2003 12:38:52 schreef Aedolon:
Zo kan het ook nog maar aansturen lijkt me dan ietsje moeilijker :)

Hoe je um aan moet sturen stond volgens mij ook op die pagina (Onderaan)..

Groeten Randy

Leuk topic!!

Het nadeel van basic gebruiken om te outputten, is dat het niet werkt in win2k/xp
Daarom hier de officiele windows methode in c:


/* A sample program to illustrate setting up a serial port and writing one byte */

#include <windows.h>

int
main(int argc, char *argv[])
{
  DCB dcb;
  HANDLE hCom;
  BOOL fSuccess;
  char *pcCommPort = "COM1";
  char *buffer = "1234567890";
  unsigned int i;
  unsigned char karakter;
  COMMTIMEOUTS commtimeouts;
  COMSTAT comstat;

  DWORD byteswritten;

  hCom = CreateFile( pcCommPort,
                     GENERIC_READ | GENERIC_WRITE,
                     0,    // comm devices must be opened w/exclusive-access
                     NULL, // no security attributes
                     OPEN_EXISTING, // comm devices must use OPEN_EXISTING
                     0,    // not overlapped I/O
                     NULL  // hTemplate must be NULL for comm devices
                     );

  if (hCom == INVALID_HANDLE_VALUE) {
      // Handle the error.
      printf ("CreateFile failed with error %d.\n", GetLastError());
      return (1);
    }

  fSuccess =  SetupComm( hCom,     // handle to communications device
                         2100,  // size of input buffer
                         10  // size of output buffer
                         );
  if (!fSuccess) {
      printf ("Setupcomm failed with error %d.\n", GetLastError());
      return (2);
  }

  fSuccess = GetCommState(hCom, &dcb);

  if (!fSuccess) {
      // Handle the error.
      printf ("GetCommState failed with error %d.\n", GetLastError());
      return (3);
    }

  // Fill in the DCB: baud=57,600 bps, 8 data bits, no parity, and 1 stop bit.

  dcb.BaudRate = CBR_57600;                    // set the baud rate
  dcb.ByteSize = 8;                            // data size, xmit, and rcv
  dcb.Parity = NOPARITY;                       // no parity bit
  dcb.StopBits = ONESTOPBIT;                   // one stop bit
  dcb.fOutxCtsFlow = FALSE;                    // no CTS output flow control
  dcb.fOutxDsrFlow = FALSE;                    // no DSR output flow control
  dcb.fDtrControl = DTR_CONTROL_ENABLE;        // DTR always high = +12 v.
  dcb.fDsrSensitivity = FALSE;                 // pay no attention to DSR
  dcb.fTXContinueOnXoff = TRUE;                // XOFF continues Tx
  dcb.fOutX = FALSE;                           // XON/XOFF out flow control
  dcb.fInX = FALSE;                            // XON/XOFF in flow control
  dcb.fNull = FALSE;                           // enable null stripping
  dcb.fRtsControl = RTS_CONTROL_DISABLE;       // RTS always low = -12 v.


  fSuccess = SetCommState(hCom, &dcb);

  if (!fSuccess) {
      printf ("SetCommState failed with error %d.\n", GetLastError());
      return (4);
    }

  printf ("Serial port %s successfully reconfigured.\n", pcCommPort);

  printf ("Now trying to write a byte...\n");
  fSuccess = WriteFile( hCom,
                        buffer,
                        1,      // write one byte
                        &byteswritten,
                        NULL    // no overlapping
                        );
  if (!fSuccess) {
     printf ("WriteFile failed with error %d\n");
  }

  CloseHandle(hCom);
  return (0);
}

Het is vreselijk lang, ik heb het even snel uit een programma van mij gehaald.

Ik adviseer een max232 achter de seriele poort, en daarachter een microcontroller, liefst met uart aan boord. Daar kan je eventueel weer een reeksje 74164's achter hangen, evt met latches, om een veelvoud van 8 uitgangen te krijgen.
Lezen kan ook, als je wil, post ik nog wel wat code :)

Wat is windoos toch raar maar ik snap ze wel die msers maar moet het daarom zo lang zijn???????? geen libary ? :P

haha vraag mij nix van c want daar snap ik de balluh van

Gr-Randy