WIN7(64) Fehler

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!

Bitte den Code-Tags Knopf </> verwenden!

Liegt es vielleicht bei den Prototypen? In diesem Fall solltest du die eigentlich nicht per Hand schreiben müssen. Bei diesen Standard Sachen bekommt das die IDE selbst hin.

Es kann sein dass es an der IDE Version liegt. Da hat man nämlich den Prototyp-Parser geändert. 1.6.5 sollte zur Zeit das höchste sein das man verwendet. Alles darüber ist voller Bugs.

Bitte erst mal die "How to Use..." durchlesen.
Und was hat das mit Win7 zu tun.

Hallo,

bei der Sketchgröße wäre es sinnvoll die .ino Datei ranzuhängen.
Ich kann bei meiner v1.6.7 keine Bugs feststellen. Gibt nur mehr sinnvolle Warnungen aus.
Alle meine Sketche aus v1.0.6 Zeiten laufen auch unter der aktuellen Version.

Ja stimmt ich hätte den Code auch dranhängen können.

So ich habe mal die IDE 1.06. installiert; in der Version habe ich keine Probleme damit.
Es hat also nichts mit der WIN Version zu tun.

Aber weshalb kommen höhere IDE Versionen mit dem Programm nicht zurecht?

1.6.5 solltest du eigentlich verwenden können

Es gibt wie gesagt immer wieder mal größere Änderungen. Wie gesagt neuerdings am Parser zur Erstellung der Funktionsprototypen. Das ist überfällig, weil einige Sachen da nicht richtig gehen, aber anscheinend geht es nicht richtig.