Arduino necesita un serial de inicio para funcionar

2

Hace poco compré arduino uno r3 y comencé con un programa simple que parpadea con un led integrado:

#define LED_PIN 13

void setup()
{
    pinMode(LED_PIN, OUTPUT);
}

void loop()
{
    digitalWrite(LED_PIN, HIGH);
    delay(500);
    digitalWrite(LED_PIN, LOW);
    delay(500);
}

Un problema es que este programa no funciona. Después de cargarlo, parece que se ha atascado en algún estado (el led está encendido o apagado constantemente).

Pero en caso de que el programa utilice un módulo en serie, arduino funciona como se espera.

#define LED_PIN 13

void setup()
{
    pinMode(LED_PIN, OUTPUT);
    Serial.begin(9600);
}

void loop()
{
    digitalWrite(LED_PIN, HIGH);
    delay(500);
    digitalWrite(LED_PIN, LOW);
    delay(500);
}

¿Dónde está el problema? ¿O es por diseño y debería funcionar de esta manera?

Acerca de la cadena de herramientas:

  • avr-g ++ - 4.4.6-r1 p1.0, pie-0.4.5
  • arduino-1.0.5
  • avrdude-6.0.1
  • avr-libc-1.8.0

1 respuesta

1

Resulta que el problema estaba en la parte de la cadena de herramientas binutils. He usado 2.19 y aparentemente está roto con arduino, así que retrocedo a 2.18.50.0.9 y ahora todo funciona como se supone.

Entonces es bastante extraño que arduino realmente funcione con serial.begin ().

Para los usuarios de gentoo, las siguientes acciones deben resolver el problema:

crossdev -C avr
USE="multilib -cxx" crossdev --b 2.19.1-r1 -S -s1 --target avr
USE="multilib cxx" crossdev --b 2.19.1-r1 -S -s4 --target avr
    
respondido por el Alexander Sergeev

Lea otras preguntas en las etiquetas