Difference between revisions of "Blinker"
From ThorstensHome
Line 52: | Line 52: | ||
./a.out | ./a.out | ||
− | Dauert immer noch 4 Sekunden. | + | Dauert immer noch 4 Sekunden. Kein Problem, eine Lösung beschreibe ich unter [[Dimmer]]. |
Revision as of 20:09, 7 June 2013
Für das Elektronik Buch möchte ich einen Blinker bauen. 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. Kein Problem, eine Lösung beschreibe ich unter Dimmer.