mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Datenübertragung


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?!

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.