Hallo,
Ich habe ein Problem bei dem ich nicht weiterkomme. Es handelt sich dabei um eine Laufschrift bestehend aus 3 Stück 8x8 LedMatrix. Das Programm wurde fertig übernommen und nur ein wenig abgeändert z.B. neue Zeichen definiert etc. Ich weis das es auch andere Möglichkeiten gibt eine Laufschrift zu erstellen z.B. mit Schieberegistern etc. Blos dabei werden die Zeichen "Matrix" weise verschoben und nicht Zeilen- bzw. Spaltenweise. Ich will ja eine weiche Laufschrift haben und nicht so eine "hart" laufende.
Nun gut, das ist ja nicht das eigentliche Problem.
Mein Problem ist das das Programm auf einem WinXP-Netbook mit Arduino IDE (1.0.5) ohne Probleme läuft.
Auf dem Desktop PC mit Win7 (64) Arduino IDE (1.6.7) bekomme ich jedoch Compilierung-Fehlermeldungen. Ich weis nicht woran es liegn kann.
Zunächst mal das Programm zur Laufschrift: ( auszugsweise, wegen der Zeichenbeschränkung auf 9000)
/*
Arduino_led_matrix_scrolling_text.cpp dünne Schrift
Created: 16.09.2012 12:40:53
Author: Samuel (www.saduino.ch)
*/
// Text der angezeigt werden soll
char *Text = "TEST";
// Bei Eingabe Ãœber das serielle Interface muss -bool ShowDynamic = true- gesetzt werden [true;]
// write your own text on runtime over serial interface
char TextDynamic[256] = {0};
uint8_t TextLength = 0;
// text during runtime over serial interface
bool ShowDynamic = false;
// Settings: Display
const uint8_t ShowFreq = 1; // LED refresh rate (ms)
const uint8_t ShowLength = 2; // picture repetition rate (6 times)
const uint8_t ShowWait = 2; // wait after picture (ms)
// Settings: Pins
const uint8_t NumberLOW = 24;
const uint8_t NumberHIGH = 24;
uint8_t pinHIGH[NumberHIGH] = {2, 3, 4, 5, 6, 7, 8, 9}; // Pin assignment HIGH {11,7,5,3,12,9,16,18}
uint8_t pinLOW[NumberLOW] = {22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45}; // Pin assignment LOW 21,22,23,24,25,26,27,28
// Prototypen
uint8_t get_character(char Character, uint8_t MatrixCharacter[]);
const uint8_t scrolling_text(char *Text, const uint8_t ShowFreq, const uint8_t ShowLength, const uint8_t ShowWait, const uint8_t NumberHIGH, const uint8_t NumberLOW, const uint8_t pinHIGH[NumberHIGH],const uint8_t pinLOW[NumberLOW]);
uint8_t showMatrix(uint8_t LEDmatrix[], const uint8_t ShowFreq, const uint8_t ShowLength, const
.
.
.
.
void setup()
{
Serial.begin(9600); // set serial interface
// Set Pins
for (int a = 0; a < NumberHIGH; a++) // set all high Pins to OUTPUT
pinMode(pinHIGH[a], OUTPUT);
for (int a = 0; a < NumberHIGH; a++) // set all high Pins to LOW
digitalWrite(pinHIGH[a], LOW);
for (int a = 0; a < NumberLOW; a++) // set all low Pins to OUTPUT
pinMode(pinLOW[a], OUTPUT);
for (int a = 0; a < NumberLOW; a++) // set all low Pins to HIGH
digitalWrite(pinLOW[a], HIGH);
}
// start program
void loop()
{
// little animation
// animation(ShowFreq, ShowLength, ShowWait, NumberHIGH, NumberLOW, pinHIGH, pinLOW);
// scrolling text
if (ShowDynamic)
{
// add new letters
while (Serial.available() > 0)
{
TextDynamic[TextLength] = Serial.read();
TextLength++;
}
// Print text serial and with LED matrix
if (TextLength > 0)
{
for (int a = 0; a < TextLength; a++)
{
Serial.println(TextDynamic[a]);
}
Serial.print("TextLength: "); // control with serial output
Serial.println(TextLength); //
// show scrolling text on LED matrix
// show your text from serial
scrolling_text(TextDynamic, ShowFreq, ShowLength, ShowWait, NumberHIGH, NumberLOW, pinHIGH, pinLOW);
// wait some time after the text
delay(100);
}
}
else
{
// show scrolling text on LED matrix
// your static text
scrolling_text(Text, ShowFreq, ShowLength, ShowWait, NumberHIGH, NumberLOW, pinHIGH, pinLOW);
}
}
// Functions
uint8_t get_character(char Character, uint8_t MatrixCharacter[])
{
// alphabet
uint8_t A[8] = {0x1c, 0x22, 0x22, 0x3e, 0x22, 0x22, 0x22, 0x00};
uint8_t B[8] = {0x3c, 0x22, 0x22, 0x3c, 0x22, 0x22, 0x3c, 0x00};
uint8_t C[8] = {0x1c, 0x22, 0x20, 0x20, 0x20, 0x22, 0x1c, 0x00};
.
.
.
.
.
// reset Matrix
for (uint8_t i = 0; i < 8; i++)
MatrixCharacter[i] = 0;
// fill Matrix
for (uint8_t ii = 0; ii < 8; ii++)
switch (Character)
{
case 'A': MatrixCharacter[ii] = A[ii]; break;
case 'a': MatrixCharacter[ii] = a[ii]; break;
case 'B': MatrixCharacter[ii] = B[ii]; break;
case 'b': MatrixCharacter[ii] = b[ii]; break;
case 'C': MatrixCharacter[ii] = C[ii]; break;
.
.
.
.
.
default: break;
}
return 0;
}
.
.
.
.
.
Und dazu die Fehlermeldung:
Arduino: 1.6.7 (Windows 7), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"
Arduino_led_matrix_scrolling_text_24x8:35: error: use of parameter 'NumberHIGH' outside function body
const uint8_t scrolling_text(char *Text, const uint8_t ShowFreq, const uint8_t ShowLength, const uint8_t ShowWait, const uint8_t NumberHIGH, const uint8_t NumberLOW, const uint8_t pinHIGH[NumberHIGH],const uint8_t pinLOW[NumberLOW]);
^
Arduino_led_matrix_scrolling_text_24x8:35: error: expected ')' before ',' token
const uint8_t scrolling_text(char *Text, const uint8_t ShowFreq, const uint8_t ShowLength, const uint8_t ShowWait, const uint8_t NumberHIGH, const uint8_t NumberLOW, const uint8_t pinHIGH[NumberHIGH],const uint8_t pinLOW[NumberLOW]);
^
Arduino_led_matrix_scrolling_text_24x8:37: error: expected ')' before ',' token
uint8_t animation(const uint8_t ShowFreq, const uint8_t ShowLength, const uint8_t ShowWait, const uint8_t NumberHIGH, const uint8_t NumberLOW, uint8_t pinHIGH[NumberHIGH], uint8_t pinLOW[NumberLOW]);
^
Arduino_led_matrix_scrolling_text_24x8:37: error: expected initializer before 'pinLOW'
uint8_t animation(const uint8_t ShowFreq, const uint8_t ShowLength, const uint8_t ShowWait, const uint8_t NumberHIGH, const uint8_t NumberLOW, uint8_t pinHIGH[NumberHIGH], uint8_t pinLOW[NumberLOW]);
^
Arduino_led_matrix_scrolling_text_24x8:419: error: redefinition of 'const uint8_t ShowLength'
const uint8_t ShowLength,
^
Arduino_led_matrix_scrolling_text_24x8:24: error: 'const uint8_t ShowLength' previously defined here
const uint8_t ShowLength = 2; // picture repetition rate (6 times)
^
Arduino_led_matrix_scrolling_text_24x8:420: error: expected unqualified-id before 'const'
const uint8_t ShowWait,
^
exit status 1
use of parameter 'NumberHIGH' outside function body
Kann mir jemand sagen, warum das auf dem XP-Rechner läuft und bei WIN7 nicht?
Was muss ich ändern?
Haben sich Befehle in irgend einer Weise verändert in der neuesten IDE-Version?
Danke für Hinweise!