problemas para programar arduino mega 2560

hola a todos, escribo por este medio para ver si alguien me puede ayudar, en este momento necesito programar mi arduino mega 2560, el programa que intento bajar al microcontrolador utiliza los puertos seriales 0 y 1, había estado bajando este programa varias veces al arduino para hacer pruebas y de un momento a otro el arduino ya no me quiere programar, se queda horas intentando programar. he intentado bajar programas mas sencillos como el "blik", este tipo de programas los baja sin ningún problema, pero si intento bajar uno que haga uso del puerto serial, se queda horas intentando programar. si alguien me puede ayudar se lo agradecería. Gracias!!!

escribe algun programa de los que no funciona...
que error te da...
etc...

este es el error
Binary sketch size: 3200 bytes (of a 258048 byte maximum)
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
.
.
.
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
.
.
.
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout

y se repite sucesivamente

Ni Avrdude ni el bootloader analizan el código que se transmite así que por muy disfuncional que sea el código que se intenta transmitir no debería ocurrir ningún problema durante la transmisión.

Si el código contuviese construcciones o instrucciones ilegales se produciría un error cuando el Arduino intenta ejecutar ese código pero no durante la fase previa de transmisión.

Debe ser un problema de sintaxis, de los símbolos que contiene el código y no de lo que esos símbolos signifiquen, de las instrucciones que están codificadas en ellos. Se trataría de encontrar "una letra" equivocada y no una instrucción equivocada.

El método más rápido es comentar o suprimir grandes bloques de código hasta aislar la linea concreta que crea el problema.

Un ejemplo de símbolo que atasca el sistema de transmisión en la mega es "!!!". Si hay una string literal como "Sobrecalentamiento !!!" en el código, las 3 exclamaciones seguidas impiden la transmisión del programa.

http://arduino.cc/forum/index.php/topic,126778.0.html