Frage:
"streunend '/ 302' im Programmfehler" beim Kompilieren
user2950509
2016-10-27 18:41:13 UTC
view on stackexchange narkive permalink

Aus irgendeinem seltsamen Grund wird der folgende Code nicht kompiliert. Ich erhalte den Fehler "Streuner '\ 302' im Programm" um volatile unsigned int encoderPos = 0; , und ich habe keine Ahnung, was das Problem ist. Ich habe über 40 Minuten lang versucht, dies herauszufinden, und nichts funktioniert. Es macht keinen Sinn

  #include <U8g2lib.h> # include <SPI.h> // Pin-Definitionen: const int control_PWM = A3; // PWM-Ausgang für die Verzögerung const int btn_1 = 1; // Schaltfläche für Modus 1const int btn_2 = 4; // Schaltfläche für Modus 2const int btn_3 = 5; // Schaltfläche für Modus 3const int r_A = 2; // Datenkonstante des Drehgebers A int r_B = 3; // Datenkonstante des Drehgebers A int r_SW = 0; // Taste des Drehgebers dataconst int oled_CLK = 9; // SPI cloackconst int oled_MOSI = 8; // MOSI pinconst int oled_CS = 7; // Chip Select pinconst int oled_DC = 6; // OLEDs D / C-PinU8G2_SH1106_128X64_NONAME_F_4W_HW_SPI u8g2 (U8G2_R0, / * cs = * / 10, / * dc = * / 9, / * reset = * / 8); int mode = 1; // 1: RGB, 2: HSL, 3: Distanzkontrolleint value_selection = 1; // Istwert selectintionint value1 = 0; // rot in Modus 1; Farbton im Modus 2int Wert2 = 0; //// grün in Modus 1; Sättigung im Modus 2int Wert3 = 0; // blau in Modus 1; Leuchtkraft im Modus 2 volatile unsigned int encoderPos = 0; // aktuelle Position des Drehgebers nicht signiert int lastReportedPos = 1; // vorherige Position des Drehgebers statisch boolesch rotierend = false; // ist der Encoder-Aktivitätsstatus // Unterbrechervariablenboolean A_set = false; boolean B_set = false; boolean A_change = false; boolean B_change = false; void setup () {} void loop () {}  
Welche IDE-Version?
Könnten Sie bitte Ihre Frage so bearbeiten, dass sie die genaue Fehlermeldung enthält?
@canadiancyborg: Ihre Bearbeitung hat das Problem verdeckt.
@IgnacioVazquez-Abrams Ich habe gerade die französischen Kommentare ins Englische übersetzt. Wie hat sich etwas geändert?
@canadiancyborg: Sie haben die Nicht-ASCII-Zeichen in der Quelle entfernt, die die Fehlerursache waren.
@IgnacioVazquez-Abrams warten, so dass Nicht-ASCII-Zeichen in Kommentaren auch das Programm beeinflussen?
Kompiliere gut für mich. UECIDE 0.9.1.
Zwei antworten:
Ignacio Vazquez-Abrams
2016-10-27 19:16:11 UTC
view on stackexchange narkive permalink

0302 ist 0xc2. Irgendwo in Ihrer Quelle sind ein oder mehrere nicht unterbrechende Leerzeichen (0xa0) in UTF-8 (0xc2 0xa0) codiert. Verwenden Sie od oder ein ähnliches Tool, um sie zu finden, und ersetzen Sie sie dann durch normale Leerzeichen. S> Da Ihre Quelle Nicht-ASCII-Latin-1-Zeichen enthält, werden diese Zeichen als zwei Bytes codiert wobei der erste 0xc2 oder 0xc3 ist. Entfernen Sie alle Nicht-ASCII-Zeichen, bevor Sie fortfahren.

Sie können den Code wahrscheinlich einfach aus Ihrem Beitrag kopieren und über den Originalcode in der IDE einfügen. Da ich im obigen Text keine seltsamen Zeichen erkennen kann (ich denke, der Browser ersetzt NBSPs durch reguläre Leerzeichen). Unsichtbare Zeichen können für einige Compiler ein ziemlicher Schmerz sein.
RogerR2
2017-03-13 02:28:50 UTC
view on stackexchange narkive permalink

Eine Ursache für den Fehler / (302) ist das Kopieren und Einfügen von Code aus einem Textverarbeitungsprogramm. Sie haben ASCII-Codes kopiert, die Ihrem Code Leerzeichen usw. hinzufügen. Gehen Sie jede identifizierte Zeile durch und entfernen Sie alle zusätzlichen Leerzeichen am Anfang und Ende einer identifizierten Zeile. Gehen Sie dann (Arduino IDE) zu TOOLS, Auto Format. Zumindest hat dies das Problem für mich geklärt.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...