Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

daten senden und empfangen mit 2 seriellen gleichzeitig

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
wieland



Anmeldungsdatum: 16.06.2010
Beiträge: 1

BeitragVerfasst am: 16.06.2010, 14:19    Titel: daten senden und empfangen mit 2 seriellen gleichzeitig Antworten mit Zitat

Hallo,
kann das so funktionieren?

ps.: Es ist das erste mal das ich überhaupt was Schreibe
also werden da mit Sicherheit grobe Schnitzer dabei sein.

Code:

#Include  Once  "windows.bi"

OPEN COM COMA: 9900, N, 8, 1" As #1
OPEN COM COM2: 9900, N, 8, 1" As #2

PRINT  "Drücken Sie 'q', um zu beenden"
Do
   PRINT  "Drücken Sie 's', um zu starten"
   Do
   Loop UNTIL INKEY = "s"
   PRINT #1, Start aufzeichnen
   PRINT #2, Start drehen
   Print  "Drücken Sie 'x', um zu stoppen"
   Do
   Loop UNTIL INKEY = "x"
   Print #1, Stopp aufzeichnen
   Print #2, Stopp drehen
   Input #2, Schritte
   Print Schritte " Schritte wurden gedreht"
   Print #2, drehrichtung links
   Print #2, Schritte drehen
   Print #2, drehrichtung rechts
Print #2, schrittzähler auf null


LOOP Until INKEY = "q"
Close


Was das ganze soll?
Ich habe auf der einen Seite (comA) ein Programm, das durch eine Serielle Schnittstelle ferngesteuert wird. (virtuelle Schnittstelle und comOcom) Es empfängt Sring`s und zeichnet die Bewegung eines Schrittmotors (com2 Schrittmotorsteuerung) auf.

Meine Fragen sind ob der Code so funktionieren kann und
wie ich die empfangenen Schritte verarbeiten muss um sie dann wieder zu senden bzw., muss ich da noch irgendwie Variablen festlegen?
Gibt es eine Alternative zu do...loop wird da nicht unnötige Rechenleistung verbraucht?

Ich kann mit dem was in der Anleitung zur Schrittabfrage steht nicht viel anfangen:
Schrittmotorsteuerung liefert zurück:
1.Byte: Schrittanzahl (Low Byte von Low Word)
2.Byte: Schrittanzahl (High Byte von Low Word)
3.Byte: Schrittanzahl (Low Byte von High Word)
4.Byte: Schrittanzahl (High Byte von High Word)

generell sieht die befehlssyntax der schrittmotorsteuerung so aus:
1. Byte: Kennung immer 33 also ASCII-Zeichen "!"
2. Byte: Kennung immer 35 also ASCII-Zeichen "#"
3. Byte: Befehlscode (dieses Byte legt die Art des Befehles fest)
4. Byte: Motor (entweder 1 oder 2 oder 3 für beide)
5. Byte: Parameter 1 (je nach Befehl)
6. Byte: Parameter 2 (je nach Befehl)
7. Byte: Parameter 3 (je nach Befehl)
8. Byte: Parameter 4 (je nach Befehl)


Ich würde mich freuen wenn hier mal Jemand drüberschauen kann, Verbesserungen und Hinweise geben kann.

Achja das ganze muss unter winxp laufen.

Vielen Dank
wieland
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 16.06.2010, 18:14    Titel: Antworten mit Zitat

Zu OPEN COM kann ich nichts sagen, aber was anderes: bei
Code:
   DO
   LOOP UNTIL INKEY = "s"

wird dir eine sehr hohe CPU-Auslastung bescheren. Vermeiden kannst du das z. B. durch
Code:
   DO
      SLEEP 1
   LOOP UNTIL INKEY = "s"


Das Beenden wird sicher auch schwer, weil du in der kurzen Zeit zwischen dem Druck von 'x' und dem Schleifenende ganz schnell noch 'q' drücken müsstest.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz