  | 
					
						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, 20: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, 20: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, 21: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, 22: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.
  | 
   
 
     |