PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : serielle Kommunikation mit XProfan 11.2 Free



Che Guevara
20.04.2010, 17:28
Hi Leute,

hab ein kleines Problem:
Habe einen GP2D12 auf einen Servo montiert, welcher sich so um 90° drehen soll.
Am PC möchte ich ein Programm erstellen, welches mir bei einem best. Tastendruck (z.b. Enter, ist jetzt aber egal) den String "Messung_Start" an der seriellen Schnittstelle (usb to rs232 adapter - erfolgreich mit hterm getestet, in beide Richtungen) ausgibt. Dadurch wird die Messung gestartet, also Servo dreht sich um 1°, ADC-Wert wird eingelesen, Servo dreht sich wieder, usw. ...
Nach jeder Messung wird der ADC-Wert an den PC gesendet, welcher dann am Anfang in eine Tabelle geschrieben wird oder einfach in ein Array abgelegt wird. Später soll das ganze mal graphisch dargestellt werden, aber zunächst gehts mir um die Ein- und Ausgabe der Daten über die serielle Schnittstelle.
Dachte mir das eig so:


windowtitle "Uart-Versuch"
cls
declare comhandle$ , in_com$ , out_com$ , i% , komplett_string$
showmax

comhandle$ = @opencom("COM1",1024,1024)
@setcom("COM1:19200,N,8,1")

out_com$ = "Messung_Start"


while 1

if @iskey(13)
@writecom(comhandle$ , out_com$)
@comerror(comhandle$)
locate 1,1
print out_com$
endif

i% = 0

whilenot i% = 90
inc i%
locate 2,1
in_com$ = @readcom$(comhandle$ , 1)
@comerror(comhandle$)
whilenot in_com$ = ""
print in_com$
komplett_string$ = komplett_string$ + in_com$
in_com$ = @readcom$(comhandle$ , 1)
@comerror(comhandle$)
wend
wend

print "Komplett: " ; komplett_string$
komplett_string$ = ""

wend

@closecom(comhandle$)

end


Allerdings kommt bei mir am µC nichts an, ist ein Mega32 mit folgendem BASCOM Programm:


$regfile = "m32def.dat"
$crystal = 16000000
$baud = 19200
$framesize = 80
$hwstack = 80
$swstack = 80


Declare Sub Serial0charmatch()



Config Serialin = Buffered , Size = 30 , Bytematch = 13


Dim X As Word
Dim I As Byte
Dim In_rs232 As String * 30


Ddrc.7 = 1



Enable Interrupts


Do

nop

Loop

End


Sub Serial0charmatch()
Input In_rs232 Noecho
Toggle Portc.7
In_rs232 = In_rs232 + "y"
Print In_rs232
End Sub


Irgendwie will das Ganze nicht so wie es soll :(
Hoffe, hier kennt sich jemand aus und kann mir helfen, wäre echt ziemlich wichtig!
Danke schon mal im voraus
Gruß
Chris