Forum: Mikrocontroller und Digitale Elektronik Seltsamer Output bei Grand Central M4 + Arduino


von Alexander M. (a_lexander)


Lesenswert?

Hallo Zusammen,

ich hab hier einen Grand Central M4 Board mit dem uC ATSAMD51P20A und 
würde den gern mal mit einem Arduino zum Laufen bekommen. Dafür hab ich 
mir über den Boardverwalter die jeweilige Konfiguration heruntergeladen.

Nun würde ich gern ein einfachen Output über den Serial Port ausgeben 
lassen:

Folgender Code:
1
int i = 0;
2
3
void setup() {
4
  Serial.begin(9600);
5
  // put your setup code here, to run once:
6
7
}
8
9
void loop() {
10
  Serial.println(i++);
11
  // put your main code here, to run repeatedly:
12
  delay(10);
13
}

Meiner Meinung nach sollte nun der Output über den Serial Monitor wie 
folgt kommen:
0
1
2
3
...

Was aber stattdessen passiert: "i" startet nicht bei 0, sondern 
willkürlich und zählt dann hoch...
Startwert = 113, 114, 115, ... bzw. 427, 428, 429, ... --> bei 
delay(10);
Startwert = 5, 6, 7, ... bzw. 6, 7, 8, ... bzw. 9, 10, 11, ... --> bei 
delay(100);


Ich kapier es einfach nicht, warum ist das denn so?! Wo liegt der 
Fehler....

Danke ;)

Grüße

: Bearbeitet durch User
von Horst (Gast)


Lesenswert?

Dein Programm wartet nicht, bis der serielle Port fertig initialisiert 
ist und so ist das Programm schon bei 100 bis der Port endlich Daten 
überträgt.

ein einfaches
 while(!Serial);
hinter den Serial.begin hilft meist, sonst kannst Du
 if( Serial.available() ) {
id der Loop benutzen.

von Alexander M. (a_lexander)


Lesenswert?

Horst schrieb:
> Dein Programm wartet nicht, bis der serielle Port fertig initialisiert
> ist und so ist das Programm schon bei 100 bis der Port endlich Daten
> überträgt.
>
> ein einfaches
>  while(!Serial);
> hinter den Serial.begin hilft meist, sonst kannst Du
>  if( Serial.available() ) {
> id der Loop benutzen.

Ahh vielen Dank! Läuft gleich viel besser ;)

Kurze Anmerkung:
if(Serial.available())
{
...
}
geht in meinem Fall nicht, nur: while(!Serial);

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.