Forum: Mikrocontroller und Digitale Elektronik Datenübertragung


von Thomas (Gast)


Lesenswert?

Hallo ich habe eine Frage wegen dem "Print"-Befehl unter BASCOM.
Meine Hardware(ein µC mit Temperatursensor) sendet über den Befehl
Print  beispielsweise 125. Mein VB-Programm soll diese Daten dann in
ein Feld im Windowsprogramm eintragen , damit dort dann "Temperatur =
12,5" steht.
Anfangs funktioniert das auch, als ich aber dem µC noch einige Aufgaben
"einprogrammiert" habe bekomme ich mit der Anzeige Probleme. Die
"12,5" flimmern. WEnn ich den µC aber an ein Terminalprogramm hänge
werden mir immer die Daten 125 ohne Unterbrechungen angezeigt.
Ich könnte das Problem noch verstehen wenn zb das Gesendete so aussehen
würde:
125
125
999
125
125
999
999

Dann würde ich verstehen warum es flimmert, da zwischenzeitlich die 125
durch 999 unterbrochen werden.


Könnt ihr mir weiterhelfen? Ich verzweifle noch daran...(;

Gruß Thomas

von Hans (Gast)


Lesenswert?

tjo das ist doch ganz normal...

abhilfe :

1. sende immer nur wenn sich was ändert
2. suche nach vt100 terminal und sich dir raus wie du auf bestimmte
stellen springen kannst...

dann löscht du einfach beim start den screen... gibtst deine werte
immer am bildschirm da aus wo du sie haben willst und nix is mehr mit
flimmer...

ich könnt dir auch aufführen warums flimmert..aber ich will jetzt keine
lange predigt über diverse bild-aufbau methoden und probleme davon
halten ;)

73

von Thomas (Gast)


Lesenswert?

Hallo Hans,

ich habe mal eine ganz blöde Frage (;
Wie programmiere ich das, dass nur gesendet wird ,wenn die Werte
verändert werden?
Ich müsste das ja zwischenspeichern und dann irgendwie mit dem neueren
Wert vergleichen und wenn <> dann wirds gesendet?!

von Hans (Gast)


Lesenswert?

jo... ich hab zwar schon ewig kein bascom basic mehr verwendet..aber
irgend sowas in der art müssts sein...

OldTemp=CurrentTemp
CurrentTemp=ReadTemp()
if not OldTemp=CurrentTemp then
  SendTemp()
end if

das sollts eigentelich machen...

das mit herumspringen im terminal ist im prinzip nix anders wie ein
print mit einem string.. aber wie das jetzt genau gegangen ist müsst
ich daheim mal nachforschen... bist aber warscheinlich schneller mit
google als ich daheim ;)

73

von Thomas (Gast)


Lesenswert?

Hallo Hans,
danke nochmal für deine Antwort. Könntest du mir zu vt100 terminal noch
ein Stichwort geben unter welchem ich suchen soll. Ich habe da zwar was
gefunden weiß aber nicht genau was es ist(;

Gruß

von Thomas (Gast)


Lesenswert?

Hallo nochmals,

ich habe noch ein Problem mit den Variablen.
Der Befehl lautet bei mir wie folgt: Print A,B,C,D
wie kann ich nun diese 3 Variablen zu einer Zusammenfassen.
Wenn zB A=1 B=2 C=3 D=4
dann sendet der µC folgenden Text 1234
Wie kann ich diesen nun zu einer Varablen zusammenfassen. oder wie löse
ich das Problem mit den 4 Variablen ??
Danke für Eure Hilfe

von Rahul (Gast)


Lesenswert?

@Thomas:
Print A,B,C,D ergibt doch eigentlich 1   2   3   4, wobei die
Zwischenräume (auch Tabulatoren genannt) durch das Komma hervorgerufen
werden. Um direkt hintereinander zu schreiben, benutzt man doch
eigentlich das Semikolon. Zumindest war das so, als ich in Basic
programmiert habe...

Wie sehen denn deine 3( bis 4) Variablen aus bzw. wie setzen sie sich
zusammen?

Gruß Rahul

von Thomas (Gast)


Lesenswert?

Ja ich habe mich verschrieben. Ich habe die Variablen durch Semikolon
getrennt.

Die Variablen setzten sich so zusammen.
A geht von 1 bis 9
B: 1 bis 9
C:0 bis 255
D:0 bis 15

Ein Beispiel wäre zB 9925515.

von Rahul (Gast)


Lesenswert?

und wie sollen die hinterher aussehen (als eine Variable)?
Oder willst du nicht, dass alle zu einer "Zahl" zusammengesetzt
werden?
wie wäre es denn mit print "A=";A;"B=";B;"C=";C;"D=";D
Damit könnte man am PC herausfinden, welche Zahl übertragen wurde.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.