 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nitram
Anmeldungsdatum: 16.08.2008 Beiträge: 2
|
Verfasst am: 16.08.2008, 21:06 Titel: Bytes einlesen mit rs-232 |
|
|
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"
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 16.08.2008, 21:49 Titel: |
|
|
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 |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 16.08.2008, 22:05 Titel: |
|
|
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 |
|
 |
nitram
Anmeldungsdatum: 16.08.2008 Beiträge: 2
|
Verfasst am: 16.08.2008, 23:05 Titel: |
|
|
Hi Sebastian
das problem lag wirklich bei den parametern. danke für den tip
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 |
|
 |
|
|
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.
|
|