Micro 32U4 läuft nur mit seriellem Monitor

Hallo,
bisher habe ich immmer mit Nano gearbeitet.
Jetzt hab ich neu einen Micro Atmega32U4.
Da läuft das Blinken- Beispiel (und andere Programme) nur wenn man es um eine Ausgabe auf den Seriellen Monitor ergänzt und der Monitor geöffnet ist. Schließe ich den Monitor steht das Programm, öffne ich ihn läuft es weiter. Parallele Versuche mit Nano sind wie gewohnt.
Hat jemand einen Tip?

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Ich vermute, es wartet auf Serial.
Mit Sketch wäre eine genauere Antwort möglich.

Gruß Tommy

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
 
// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
//  Serial.begin(9600);
}
 
// the loop routine runs over and over again forever:
//delay (2000);
void loop() {

  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(2000);               // wait for a second
// Serial.println ("jetzt blinken");
  
}

Da sind die beiden Zeilen zum seriellen Monitor // ausgeblendet.
So läuft das Programm nicht; // raus, dann läuft es wenn der Monitor offen sist

Mach mal aus in led = 13; ein int led = 17;

Wozu?

LED_BUILTIN ist 13

Läuft bei mir mit und ohne Serial.
Warum sollte es auch nicht?
Mir fällt kein Grund ein.

Also bei pro micro Clones gibt es (oft?) keine LED_BUILTIN.
Nur RX und TX. Wenn man möchte, dass eine Onboard LED blinkt, muss man sich für eine von beiden entscheiden. Und RX ist Pin 17.

Wenn TX blinken soll, braucht man ein Makro:

#ifdef __AVR_ATmega32U4__
#undef LED_BUILTIN
#define LED_BUILTIN 17
#endif

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage
  TXLED0; 
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage
  TXLED1;
  delay(1000);                       // wait for a second
}

So blinken beide LEDs ... RX und TX.

Und diese Makros die da irgendwo in der pins_arduino.h versteckt sind, sehen so aus:

#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0)
#define TXLED0 PORTD |= (1<<5)
#define TXLED1 PORTD &= ~(1<<5)
#define RXLED0 PORTB |= (1<<0)
#define RXLED1 PORTB &= ~(1<<0)

Da es beim TO blinkt, wenn er Serial dran hat, hat er offensichtlich eine LED an 13.
Damit ist der Wechsel zu 17 bei ihm sinnlos für sein Problem.

Gruß Tommy

Es blinkt wenn er eine serielle Ausgabe macht.

Da läuft das Blinken- Beispiel (und andere Programme) nur wenn man es um eine Ausgabe auf den Seriellen Monitor ergänzt und der Monitor geöffnet ist.

Eben weil er eine serielle Ausgabe macht. Wenn es aber blinken soll und er keine serielle Ausgabe machen möchte, bzw. er es eine definierte Zeitspanne blinken soll, muss er halt pin17 direkt ansprechen.

Ansonsten geht die LED nur kurz wegen der Ausgabe an und sofort wieder aus.
Und der PIN 13 wird schon an und aus geknippst ... merkt aber keiner, weil keine LED dran hängt.

Oder so:

// the loop function runs over and over again forever
void loop() {
  TXLED0; 
  RXLED0; 
  delay(1000);                       // wait for a second
  TXLED1; 
  RXLED1;
  delay(1000);                       // wait for a second
}

Oder was auch immer.

Wie auch immer...
"ProMicro Clones" kenne ich nicht, weder die originalen und auch nicht ihre Klone.
Noch nie angefasst.

Originale Micros und Leonardo und ihre Klone allerdings schon.
Die verhalten sich identisch, bei denen ist LED_BUILTIN == 13

Naja .. nur weil man etwas nicht kennt, heißt das ja nicht, dass es das nicht gibt :slight_smile:.
Ich habe so einen Clone von AliExpress. Und da gibt es nur drei LEDs: PWR, RX,TX.

Und nach der Beschreibung vom TO liegt es nahe, dass er genau so ein Teil verwendet.

Ähmmm...
Mir war nicht so, als hätte ich das behauptet.
Natürlich gibt es Pro Micros. Schon von gehört, aber nie persönlich in den Händen gehabt.

Sehe ich nicht.
Aber auch ich sehe nicht immer nur hell.

Übrigens, woher weißt du dass es ein Pro Micro Klon ist, wie kann man den unterscheiden, vom Original?
Ein Micro Klon ist er ja nicht, sonst hätte er die LED an 13

Genügt es vielleicht zu sagen, dass es Boards gibt, die einen Atmega 32U4 aufgelötet haben und als pro micro verkauft werden? So wie in #12 zu sehen.
Wenn ich damit falsch liege das "Clone" zu nennen, nur weil die nicht 100% mit den Originalen übereinstimmen. Ja meinetwegen...

Vielleicht verstehe ich Dich ja falsch, aber bevor wir jetzt Haare spalten, warten wir vielleicht auf die Reaktion vom TO.

Orgniale Clone und Klone der Clone. aha

Arduino Pro Micro waren eine Zeitlang lizensierte Nachbauten des Arduino MICRO von Sparkfun (Sparkfun durfte den Namen Arduino verwenden) Nach der Streiterei mit dem Auftauchen des Genuino scheint es diese Lizensierung nicht mehr zu geben.
Daum gibt es den orginalen PRO MICRO (von Sparkfun) und auch Nachbauten. Darum stimmt die Formulierung eigentlich schon.

Grüße Uwe

Ihm sagt klar, dass er einen Micro verwendet.
Wenn es ein Pro Micro ist, har er nicht nur mich verarscht, sondern auch sich selber.

Dann hätte ich gar nicht getestet.

Welche?

Die, einen abgewandelten "Arduino Micro" Nachbau als "Pro Micro Klon" zu bezeichnen?
Nöö!
Ein Klon ist Schaltungstechnisch, Bauform und von der Funktion identisch.
Das ist zwischen Micro und Pro Micro nicht der Fall.

Das gilt auch für:

Zumindest ich sehe es als falsch an.

So wie ein Uno Nachbau mit CH340, auch kein UNO Klon ist.

Natürlich darfst auch du mich falsch verstehen wollen, wenn du das gerne möchtest.

Ja .. möglicherweise liege ich ja falsch, aus der Angabenkombination Micro + 32U4 automatisch auf einen pro micro "irgendwas" geschlossen zu haben. Eben, weil ich genau so ein Teil habe und die Problembeschreibung zum Board passt.

So aus der Erfahrung heraus, dass ja für viele irgendwie alles auch Arduino ist, solange es sich nur über die IDE programmieren lässt.

Das was ich von Dir zitiert habe.
Grüße Uwe

Dann löse ich dir das mal auf:

Ich kenne weder original Pro Micro, und auch nicht Klone davon, aus eigener Anschauung.

Hallo,
ich bin wieder da. Ja mein Prozessor sieht genau so aus wie auf dem Bild. Es ist auch ein Pro Micro, obwohl ich einen Micro bestellt hatte. Den Text auf der Platine hab ich erst jetzt gelesen.
Und ja: int led =17 geht ohne Monitor.
int led= 13 nur wenn der Monitor an ist, und dann aber mit der selben Frequenz.
Das mag daran liegen, dass mein Seriel.println Befehl auch in der Schleife ist.
Jetzt muß ich mal noch andere Programme testen, da ich das Blinken ja nur zu Testzwecken laufen lassen habe.
Das dauert dann, aber ich melde mich nochmal.
Aber soweit : Super Unterstützung Danke!