Difference between revisions of "Blinker"

From ThorstensHome
Jump to: navigation, search
m (WikiSysop moved page Das Elektronik Buch/Blinker to Blinker)

Revision as of 21:57, 21 April 2013

Blinker

So schnell wie möglich blinken:

import serial,glob

for devices in glob.glob("/dev/ttyUSB*"):
    garbage=42 # appease python
conn = serial.Serial(devices, baudrate=9600)
while True:
    conn.setDTR(False)
    conn.setDTR(True)

Ok, das flackert... Also mal ausprobiert, wie lange 1000 Schaltoperationen auf DTR dauern:

import serial,glob,time

for devices in glob.glob("/dev/ttyUSB*"):
    garbage=42 # appease python
conn = serial.Serial(devices, baudrate=9600)
print time.time()
for i in range(1,1000):
    conn.setDTR(False)
    conn.setDTR(True)
print time.time()

Dauern 4 Sekunden bei mir... das ist zu lange. Probieren wir es in C.

blink.c

#include <sys/ioctl.h>
#include <fcntl.h>

int main()
{
    int port, i, status1, status2;
    port=open("/dev/ttyUSB0", O_RDWR|O_NOCTTY|O_NONBLOCK);
    ioctl(port, TIOCMGET, &status1); 
    status2=status1;
    status1 |= TIOCM_DTR;
    status2 &= ~TIOCM_DTR;
    for (i=1;i<1000;i++)
    {
      ioctl(port, TIOCMSET, &status1); 
      ioctl(port, TIOCMSET, &status2); 
    }
}

Compilieren mit

gcc blink.c

Ausfuehren mit

./a.out

Dauert immer noch 4 Sekunden.