Hi, ich habe mir gerade mal ein Programm geschrieben, womit ich über den Parallelport einen Gleichstrommotor über einen L298. Steuern kann. Das programm sorgt nur dafür das ich den Motor in verschiedenen Geschwindigkeiten laufen lassen kann, d.h. ich die Impulszeiten in denen der Motor Strom bekommt verändern kann.
#include <iostream> #include <sys/io.h> #include <unistd.h> using namespace std; int main() { ioperm(0x378,1,1); int i = 1; int impulslaenge; int pause; cout << endl << "Bitte die Impulszeit angeben" << endl; cin >> impulslaenge; cout << "Bitte die Pausenlänge zwischen den Impulsen angeben (mikrosekunden)" << endl; cin >> pause; do { outb(5,0x378); usleep(impulslaenge); outb(0,0x378); usleep(pause); } while (i==1); return 0; }
Nun zu meiner Frage:
Immoment ist es so das ich das Programm starte, die Werte eingebe und er dann in die do loop Schleife geht und der Motor läuft. Ich bekomme dann das programm aber nur aus indem ich das Terminal schließe.
Wie kann man das Programmieren das ich während die do -loop schleife läuft (also der Motor läuft) den Wert der Variablen "impulslaenge" ändern kann, und auch noch irgendwie das Programm beenden kann (also nicht das ich das Terminal schließen muss um das Programm abzuwürgen).
Ich hab da selbst keine idee zu, denn wenn er in der schleife ist kann ich ja mit cin keine abfrage einbauen weil er die schleife dann ja immer anhalten würde und auf eine eingabe warten würde.
Ich hoffe ich konnte mein Problem ausreichend rüberbringen 😉