mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BASCOM AVR Input - Frage


Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich warte in der Hauptschleife auf Daten und schreibe diese in ein Array 
of Bytes (also im Array steht es so: &B11001100).
Jetzt warte ich in der Hauptschleife auf Daten, die ich über RS232 
senden will und dann ins Array schreiben.
dim empf as byte
...
do
input ">",empf
marray(2) = empf
loop
Doch leider kann ich die Bytes nur in diesem Format senden: 1,2,3,...255
Wie kann ich diese in diesem Format senden: &B00110011
Das Terminalprogramm macht nach drei Zahlen Schluss.
Danke schonmal

Autor: Paul Baumann (paul_baumann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiere mal es mal so:

Dim empf as byte
Dim Erwin as byte


Erwin = BIN (empf)

...und dann den Inhalt von Erwin senden.

MfG Paul

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will aber keine Daten vom AVR zum PC senden ich will Daten vom PC 
zum (!) AVR senden.

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner eine Idee?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das was du übertragen willst, ist erst mal nur ein Text. Den empfängst 
du auf µC Seite ebenfalls als Text und wandelst ihn dann in die Zahl um.


Du leidest am BASCOM-Syndrom

Für alles und jedes erwartest du eine bereits in BASCOM fertig 
eingebaute Lösung. Die mag es tatsächlich geben, auf der anderen Seite 
studierst du aber auch nicht die Doku bzw. das Helpfile um zu wissen, 
was überhaupt möglich ist.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florian schrieb:

> ich warte in der Hauptschleife auf Daten und schreibe diese in ein Array
> of Bytes (also im Array steht es so: &B11001100).

Unklar. Nimm dir ein Vorbild an KH und erkläre exakt , was in dem Array 
steht bzw. stehen soll!

Bsp:
1. Element ist '&'
2. Element ist 'B'
3. Element ist '1'
4. Element ist '1'
5. Element ist '0'

Oder
1. Element ist &B11001100
2. Element ist 23
3. Element ist &H42
4. Element ist '1'

Beides sind Byte Arrays!

> dim empf as byte
> ...
> do
> input ">",empf
> marray(2) = empf
> loop

Dir ist klar, dass du immer und ewig nur das 2. Element in marray() 
überschreibst?

> Doch leider kann ich die Bytes nur in diesem Format senden: 1,2,3,...255
> Das Terminalprogramm macht nach drei Zahlen Schluss.

Benutz ein anderes Terminalprogramm, andere können beliebige Zeichen in 
nahezu beliebiger Anzahl senden.

> Wie kann ich diese in diesem Format senden: &B00110011

Zum Verständnis: Du willst vom PC aus die Zeichen & B 0 0 1 1 0 0 1 1 
senden und auf dem AVR sollen die in der Bytevariablen empf landen?

Du hast mind. vier Möglichkeiten:

1. Vom PC aus die Zeichenkette &B00110011 plus Zeilenende (Return) 
senden und auf dem AVR mit INPUT in eine Stringvariable einlesen. Die 
Stringvariable mit den Stringbearbeitungsfunktionen zeichenweise 
zerlegen und je nach Zeichen eine Bytevariable füllen.

2. Vom PC aus 10 Zeichen senden und auf dem AVR mit INPUTBIN die 10 
Zeichen in ein Bytefeld der Dimension 10 einlesen. Dadurch sparst du das 
Zeilenende und das Auseinanderpfiemeln. die finale Bytevariable kann 
dann als Schleife über die Elemente 3 bis 10 gemacht werden.

3. Variation von 2. Auf dem AVR wird in einer Einleseschleife die 
Funktion INKEY oder WAITKEY für je ein Zeichen benutzt. Zeichen 
umwandeln und in der Bytevariable das entsprechende Bit setzen. 
Schleifenzähler ändern.

4. Variation von 1. Du schneidest auf dem AVR mit den 
Stringbearbeitungsfunktionen den &B Anfang weg und konvertierst die 
8-stellige Ziffernfolge mit BINVAL in ein Byte.

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.