Ik heb zo BACO display, en daar wil dingen op laten verschijnen via de pc via RS232

nu ben ik een hele tijd aan het rommelen geweest, om het in de pic aan de gan te krijgen.... zie topic:
http://www.circuitsonline.net/forum/view/83595

Maar nu heb ik het zover werkend, als ik via een terminal programma bijvoorbeeld : "start11111111111111111111111111111111" krijg ik netjes 4 regels met (om de nibble) het getal 0001 tezien

zend ik :"startFFFFFFFFFFFFFFFFFFFFFF" alles aan, start00000000000 , je begrijpt het al, alles uit....

Dus ik dacht zal eens iets proberen in visual basic (6.0)

dus ik heb in een form zo'n MSComm neer gezet, en verder het volgende:
[code=visual basic]
Private Sub Form_Load()

' Fire Rx Event Every Two Bytes
'MSComm1.RThreshold = 2

' When Inputting Data, Input 2 Bytes at a time
'MSComm1.InputLen = 2

' 2400 Baud, No Parity, 8 Data Bits, 1 Stop Bit
MSComm1.Settings = "115200,N,8,1"
' Disable DTR
MSComm1.DTREnable = False

' Open COM1
MSComm1.CommPort = 4
MSComm1.PortOpen = True

End Sub

'2400 Baud, No Parity, 8 Data Bits, 1 Stop Bit
MSComm1.Settings = "115200,N,8,1"

?????

verwacht je ontvanger(pic) geen CR en/of LF
komt trouwens bij dat je meer data in de mscomm buffer wil stoppen dan dat de buffer groot is.

@arco:
ik denk dat de comment neit klopt als je kijkt in zijn andere topic staat de pic ingesteld op 115k2 baud

@arco: ja sorry commentaar vergeten aan te passen.... maar hij staat dus op 115200, sorry

@timmie: met het terminal programma werkt het wel, en daar zend ik alles als 1 string.. en wat is de buffer lengte?, en hoe lan mag en kan die zijn?

Mscomm buffer is geen probleem. windows scaled dat ...
maar langs de pic kant is er wel een verschil.... de data zou wel eens te snel kunnen binnekomen...

maar als het via een terminal programma wel goed gaat? dan moet ik het zlefde toch ook via visual basic voor elkaar kunnen krijgen?

Dat het via een terminal programma wel goed gaat is geen enkele garantie dat het dan in een eigenbouw programma ook goed gaat.
Neem dat van me aan, ik kan het weten, ik heb er ervaring mee (zucht).
Sterker nog...het terminal programma dat ik gebruik is geschreven in Delphi, ik schrijf ook in Delphi, maar ik krijg het voorlopig niet voor elkaar om te doen wat het terminal programma doet (nog een zucht, en dan een heeeeeeel diepe).

Probeer eens de fifo-buffers van je comm device uit te zetten.
Apparaatbeheer->poorten->seriele poort en daar instellingen en dan knop geavanceerde instellingen.

Heb ooit eens iets gehad wat hier op lijkt.

Het enige wat mij opvalt je stuurt hier 1 en F met volgens mij de bedoeling deze als HEX waardes uit te sturen.
Echter met:


MSComm1.Output = "start111111111111111111111111111111111"

Stuur je deze code als ascii en wordt 1 dus het ascii equivalent ipv de waarde 00000001.
Ik weet niet of je hier rekening mee houdt?

Ik dacht dat je met de code char(te_zenden_data) opgelost kon worden maar dit weet ik niet zeker meer

@hadv: nou ik heb in visual basic nog helemaal niets... alleen een knop die start111111111 verstuurd, en dat gaat al niet.... dus ik denk dat ik iets fout doet.....

@lethalshot: ja ik gebruik 2 bytes, om 1 getal te verzenden....
dit doe ik omdat ik anders niet weet hoe je bijvoorbeeld nul moet verzenden?

@gradtje: zal eens kijken, maar ik denk het niet dat dat het is, omdat nogmaals hij het via een terminalprogramma wel werkt, en ik gebruik de zelfde compoort... dus tja die doet het ....

Heb nu in visual basic iets gemaakt welke de string uitlees dmv een MID$ in een for next lus... en verzend de data dus op die manier...

En dan gaat het wel goed....

dus anders gaat het te snel zeker?

Hoi Arjan

Ik heb in Excel vb wel iets gemaakt met zend byte
en ontvangst data.
ontvangst data was met start en stop byte
werkte altijd perfect op excel 2003
als je interesse heb je ik je dit wel toe sturen.

Hans