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:

Bytes einlesen mit rs-232

 
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
nitram



Anmeldungsdatum: 16.08.2008
Beiträge: 2

BeitragVerfasst am: 16.08.2008, 21:06    Titel: Bytes einlesen mit rs-232 Antworten mit Zitat

hi. ich habe erst vor kurzen mit freebasic angefangen und bin auf dieses forum gestoßen.

ich verwende windows 2000 und die freebasicversion 0.20.0b und habe folgendes problem:

ich würde mir gerne ein programm schreiben, das ein byte, eine zahl o.ä. über den com1 port einliest. leider scheiterts bei mir schon beim öffnen dieses ports. ich habe mir aus der englischen beschreibung folgenden code zum testen besorgt:

Code:

Open Com "COM1:9600,N,8,1" As #1
If Err>0 Then Print "The port could not be opended"

sleep


Bei mir kommt allerdings die ausgabe "the port could not be opened" verwundert

Was mache ich falsch, oder ist irgendas mit den windowstreibern nicht in ordnung? ich bin auch als administrator angemeldet.

schonmal danke für eure antworten
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 16.08.2008, 21:49    Titel: Antworten mit Zitat

ich bin mir nich sicher ob das unter freebasic noch funktioniert, kann sein dass die com-port unterstützung auf diese weise garnicht mehr existiert..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 16.08.2008, 22:05    Titel: Antworten mit Zitat

Hallo,

vielleicht stimmen die Portparameter nicht für die betreffende Anwendung? Oder ist die Dateinummer #1 vielleicht schon anderweitig in Gebrauch?

Ich habe zuletzt mit FB 0.18.5 ein kleines Programm mit den genannten Routinen geschrieben (der Dialup-Simulator neulich); das ging noch ohne Probleme. Von daher denke ich, dass es auch mit 0.20.0 noch funktionieren müsste.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nitram



Anmeldungsdatum: 16.08.2008
Beiträge: 2

BeitragVerfasst am: 16.08.2008, 23:05    Titel: Antworten mit Zitat

Hi Sebastian
das problem lag wirklich bei den parametern. danke für den tip zwinkern
jetzt funktionierts auch mit dem einlesen. ich hab jetzt mal ein programm geschrieben, das die eingelesenen werte von 0-255 in eine tabelle schreibt. Als sender habe ich einen atmega16 mikrocontroller verwendet.

hier mal der grundlegende code und das tabellenprogramm, falls noch jemand damit probleme haben sollte:

Code:


SCREEN 19

Dim temp As integer
Dim graphx As integer
Dim graphy As Integer

Open Com "com1: 19200, N, 8, 1,cs0,ds0,cd0,rs" As #1

Do

While Loc(1) > 0                               ' check if data in RS232 buffer
Input #1,temp                                 ' get data terminated with CR

Locate 1,1                                    ' cursorposition
Print Temp ; "   "                           ' Stellt Temp dar
Wend

Sleep 1                                       ' limit CPU usage
Loop Until Inkey$ = Chr$(27)                   ' exit with esc key
Sleep
End


Code:


SCREEN 19

Dim temp As integer
Dim graphx As integer
Dim graphy As Integer

graphx = 200
graphy = 0

LINE (200, 10)-(790, 266), 15, B
Line (190, 266)-(210, 266), 15                  ' y - Achsenbenennung 0
Locate 17,22
Print 0

Line (190, 143)-(210, 143), 15                  ' y - Achsenbenennung 127,5
Locate 10,19
Print 127.5

Line (190, 10)-(210, 10), 15                  ' y - Achsenbenennung 255
Locate 1,20
Print 255

Open Com "com1: 19200, N, 8, 1,cs0,ds0,cd0,rs" As #1


Do

While Loc(1) > 0                                  ' check if data in RS232 buffer
Input #1,temp                                    ' get data terminated with CR

Locate 1,1
Print "Temp " ; temp ; "  "

graphy = 266
graphy = graphy - temp
PSet(graphx, graphy), 2
graphy = 256
If graphx = 790 Then                              ' wenn rechte linie erreicht, x = 0
   graphx = 200
EndIf
graphx = graphx + 1
Wend



Sleep 1                                          ' limit CPU usage
Loop Until Inkey$ = Chr$(27)                      ' exit with esc key
Sleep
End
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