Forum: Mikrocontroller und Digitale Elektronik Arduino Uno 'BYTE'


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Lutz H. (luhe)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe dieses Beispiel genommen :
1
/*********************************************************************
2
**  Device: AD9850/9851                                             **
3
**  File:   EF_AD9850_Serial.pde                                    **
4
**                    **
5
**  Created by ElecFreaks Robi.W /28 Oct 2011                       **
6
**                                            
7
8
Diese Zeile bringt die Fehlermeldung:
9
// set 3 most significant bits and send out
10
  Serial.print(hb|224,BYTE);
  Fehlermeldung
'BYTE' wird nicht länger unterstützt.

Arduino: 1.5.5-r2 (Windows 7), Board: "Arduino Uno"

C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-g++ -c -g -Os 
-w -fno-exceptions -ffunction-sections -fdata-sections -MMD 
-mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=155 -DARDUINO_AVR_UNO 
-DARDUINO_ARCH_AVR -IC:\Program Files 
(x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files 
(x86)\Arduino\hardware\arduino\avr\variants\standard 
C:\Users\QX80962\AppData\Local\Temp\build7888266717169307761.tmp\EF_AD98 
5x_Serial.cpp  -o 
C:\Users\QX80962\AppData\Local\Temp\build7888266717169307761.tmp\EF_AD98 
5x_Serial.cpp.o

EF_AD985x_Serial.pde: In function 'void loop()':
EF_AD985x_Serial.pde:134: error: 'BYTE' was not declared in this scope


Und so habe ich diese geändert, ist das richtig?

 Serial.write(hb|224);

Ist schwierig herauszufinden, was Serial.print genau  gemacht hat, da es 
nicht mehr aktuell ist.

 Danke für die Hilfe
 Lutz

: Bearbeitet durch Moderator
von Philip P. (nosuchnick)


Bewertung
0 lesenswert
nicht lesenswert
> Ist schwierig herauszufinden, was Serial.print genau  gemacht hat, da es
nicht mehr aktuell ist.

> 'BYTE' wird nicht länger unterstützt.

http://arduino.cc/en/Serial/Print

Ich nehme an, dass das BYTE ähnlich zu den immer noch aktuellen DEC, 
HEX, OCT und BIN funktioniert hat, und dem BIN am nächsten kommt.

Mit deiner aktuellen Leerzeichen Variante wird das etwas unleserlich, da 
nur folgende 8 Buchastaben ausgegeben werden könnten:

NULL, ' ', '@', '`', '€', ' ', 'À', 'à'

(Ergebnisse können abhängig vom Char Satz schwanken)

von Lutz H. (luhe)


Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hilfe.
Dadurch habe ich die Richtung gefunden in der ich weitersuchen muss.
Im Arduino Cookbook ist es beschrieben.
Durch 'BYTE' wird eine Zeichenkette aus Einsen und Nullen  ausgegeben.

die Zeile im Buch:
intValue: 65 A 65 41 101 1000001

Meine Lösung, die Fehlermeldung des Compilers zu vermeiden, erzeugt ein 
anderes Verhalten des Programms.

von Philip P. (nosuchnick)


Bewertung
0 lesenswert
nicht lesenswert
> Durch 'BYTE' wird eine Zeichenkette aus Einsen und Nullen ausgegeben.

Das entspricht den immer noch unterstützten
1
Serial.print(hb|224,BIN);

> die Zeile im Buch:
1
als characater: A
2
DEC: 65
3
HEX: 41
4
OCT: 101
5
BIN: 1000001

> Meine Lösung, die Fehlermeldung des Compilers zu vermeiden,
> erzeugt ein anderes Verhalten des Programms.

Das liegt daran, dass Serial.write und Serial.print unterschiedlich mit 
Nummern umgehen.

Serial.write interpretiert eine Nummer als einen Eintrag in der ASCII 
Tabelle 
(http://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange). 
Eine 65 wäre zum Beispiel ein 'A' oder eine 32 wäre ein Leerzeichen.

Serial.print dagegen wandelt Nummern normalerweise in Text um, aus einer 
65 werden die beiden einzelnen Zeichen '6' und '5'. Optional kann man 
noch eine Basis (http://de.wikipedia.org/wiki/Stellenwertsystem) 
angeben, um die Zahlen statt in Dezimal in Hexadezimal, Octal oder Binär 
auszugeben.

Wenn man eine Zahl Binär ausgibt, entspricht das einer Darstellung der 
einzelnen Bits.

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]
  • [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.