Приобрел Mega 2560 r3, при подключении к Arduino IDE выяснилось, что 16u2 не работает. Перешивал 16u2 - не помогло. Решил - "пофиг - пляшем" подцепил по JTAG к Atmel Studio 7. Программка элементарнейшая: Код (C++): void setup() { // Инициализируем цифровой вход/выход в режиме выхода. pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); pinMode(14, OUTPUT); pinMode(15, OUTPUT); pinMode(16, OUTPUT); pinMode(17, OUTPUT); pinMode(18, OUTPUT); pinMode(19, OUTPUT); pinMode(20, OUTPUT); pinMode(21, OUTPUT); pinMode(22, OUTPUT); pinMode(23, OUTPUT); pinMode(24, OUTPUT); pinMode(25, OUTPUT); pinMode(26, OUTPUT); pinMode(27, OUTPUT); pinMode(28, OUTPUT); pinMode(29, OUTPUT); pinMode(30, OUTPUT); pinMode(31, OUTPUT); pinMode(32, OUTPUT); pinMode(33, OUTPUT); pinMode(34, OUTPUT); pinMode(35, OUTPUT); pinMode(36, OUTPUT); pinMode(37, OUTPUT); pinMode(38, OUTPUT); pinMode(39, OUTPUT); pinMode(40, OUTPUT); pinMode(41, OUTPUT); pinMode(42, OUTPUT); pinMode(43, OUTPUT); pinMode(44, OUTPUT); pinMode(45, OUTPUT); pinMode(46, OUTPUT); pinMode(47, OUTPUT); pinMode(48, OUTPUT); pinMode(49, OUTPUT); pinMode(50, OUTPUT); pinMode(51, OUTPUT); pinMode(52, OUTPUT); pinMode(53, OUTPUT); } void loop() { digitalWrite(1, HIGH); // зажигаем светодиод digitalWrite(2, HIGH); // зажигаем светодиод digitalWrite(3, HIGH); // зажигаем светодиод digitalWrite(4, HIGH); // зажигаем светодиод digitalWrite(5, HIGH); // зажигаем светодиод digitalWrite(6, HIGH); // зажигаем светодиод digitalWrite(7, HIGH); // зажигаем светодиод digitalWrite(8, HIGH); // зажигаем светодиод digitalWrite(9, HIGH); // зажигаем светодиод digitalWrite(10, HIGH); // зажигаем светодиод digitalWrite(11, HIGH); // зажигаем светодиод digitalWrite(12, HIGH); // зажигаем светодиод digitalWrite(13, HIGH); // зажигаем светодиод digitalWrite(14, HIGH); // зажигаем светодиод digitalWrite(15, HIGH); // зажигаем светодиод digitalWrite(16, HIGH); // зажигаем светодиод digitalWrite(17, HIGH); // зажигаем светодиод digitalWrite(18, HIGH); // зажигаем светодиод digitalWrite(19, HIGH); // зажигаем светодиод digitalWrite(20, HIGH); // зажигаем светодиод digitalWrite(21, HIGH); // зажигаем светодиод digitalWrite(22, HIGH); // зажигаем светодиод digitalWrite(23, HIGH); // зажигаем светодиод digitalWrite(24, HIGH); // зажигаем светодиод digitalWrite(25, HIGH); // зажигаем светодиод digitalWrite(26, HIGH); // зажигаем светодиод digitalWrite(27, HIGH); // зажигаем светодиод digitalWrite(28, HIGH); // зажигаем светодиод digitalWrite(29, HIGH); // зажигаем светодиод digitalWrite(30, HIGH); // зажигаем светодиод digitalWrite(31, HIGH); // зажигаем светодиод digitalWrite(32, HIGH); // зажигаем светодиод digitalWrite(33, HIGH); // зажигаем светодиод digitalWrite(34, HIGH); // зажигаем светодиод digitalWrite(35, HIGH); // зажигаем светодиод digitalWrite(36, HIGH); // зажигаем светодиод digitalWrite(37, HIGH); // зажигаем светодиод digitalWrite(38, HIGH); // зажигаем светодиод digitalWrite(39, HIGH); // зажигаем светодиод digitalWrite(40, HIGH); // зажигаем светодиод digitalWrite(41, HIGH); // зажигаем светодиод digitalWrite(42, HIGH); // зажигаем светодиод digitalWrite(43, HIGH); // зажигаем светодиод digitalWrite(44, HIGH); // зажигаем светодиод digitalWrite(45, HIGH); // зажигаем светодиод digitalWrite(46, HIGH); // зажигаем светодиод digitalWrite(47, HIGH); // зажигаем светодиод digitalWrite(48, HIGH); // зажигаем светодиод digitalWrite(49, HIGH); // зажигаем светодиод digitalWrite(50, HIGH); // зажигаем светодиод digitalWrite(51, HIGH); // зажигаем светодиод digitalWrite(52, HIGH); // зажигаем светодиод digitalWrite(53, HIGH); // зажигаем светодиод delay(1000); // ждем секунду digitalWrite(1, LOW); // выключаем светодиод digitalWrite(2, LOW); // выключаем светодиод digitalWrite(3, LOW); // выключаем светодиод digitalWrite(4, LOW); // выключаем светодиод digitalWrite(5, LOW); // выключаем светодиод digitalWrite(6, LOW); // выключаем светодиод digitalWrite(7, LOW); // выключаем светодиод digitalWrite(8, LOW); // выключаем светодиод digitalWrite(9, LOW); // выключаем светодиод digitalWrite(10, LOW); // выключаем светодиод digitalWrite(11, LOW); // выключаем светодиод digitalWrite(12, LOW); // выключаем светодиод digitalWrite(13, LOW); // выключаем светодиод digitalWrite(14, LOW); // выключаем светодиод digitalWrite(15, LOW); // выключаем светодиод digitalWrite(16, LOW); // выключаем светодиод digitalWrite(17, LOW); // выключаем светодиод digitalWrite(18, LOW); // выключаем светодиод digitalWrite(19, LOW); // выключаем светодиод digitalWrite(20, LOW); // выключаем светодиод digitalWrite(21, LOW); // выключаем светодиод digitalWrite(22, LOW); // выключаем светодиод digitalWrite(23, LOW); // выключаем светодиод digitalWrite(24, LOW); // выключаем светодиод digitalWrite(25, LOW); // выключаем светодиод digitalWrite(26, LOW); // выключаем светодиод digitalWrite(27, LOW); // выключаем светодиод digitalWrite(28, LOW); // выключаем светодиод digitalWrite(29, LOW); // выключаем светодиод digitalWrite(30, LOW); // выключаем светодиод digitalWrite(31, LOW); // выключаем светодиод digitalWrite(32, LOW); // выключаем светодиод digitalWrite(33, LOW); // выключаем светодиод digitalWrite(34, LOW); // выключаем светодиод digitalWrite(35, LOW); // выключаем светодиод digitalWrite(36, LOW); // выключаем светодиод digitalWrite(37, LOW); // выключаем светодиод digitalWrite(38, LOW); // выключаем светодиод digitalWrite(39, LOW); // выключаем светодиод digitalWrite(40, LOW); // выключаем светодиод digitalWrite(41, LOW); // выключаем светодиод digitalWrite(42, LOW); // выключаем светодиод digitalWrite(43, LOW); // выключаем светодиод digitalWrite(44, LOW); // выключаем светодиод digitalWrite(45, LOW); // выключаем светодиод digitalWrite(46, LOW); // выключаем светодиод digitalWrite(47, LOW); // выключаем светодиод digitalWrite(48, LOW); // выключаем светодиод digitalWrite(49, LOW); // выключаем светодиод digitalWrite(50, LOW); // выключаем светодиод digitalWrite(51, LOW); // выключаем светодиод digitalWrite(52, LOW); // выключаем светодиод digitalWrite(53, LOW); // выключаем светодиод delay(1000); // ждем секунду } Как легко можно догадаться, эта штука сначала зажигает все пины, потом гасит.... А вот НЕ ВСЕГДА! В зависимости от того что шью - поведение разное: Atmel Studio делает либо Debug либо Release версию. В соответствующем каталоге создаются файлы: Sketch3.elf Sketch3.hex Sketch3.ino.elf Sketch3.ino.hex Sketch3.ino.with_bootloader.hex Sketch3.with_bootloader.hex Все их можно прошить JTAGом. А теперь - ПРИКОЛ. если шью из DEBUG Sketch3.elf - НИЧЕГО не моргает Sketch3.hex - все моргает Sketch3.ino.elf - все моргает Sketch3.ino.hex - все моргает Sketch3.ino.with_bootloader.hex - моргает ТОЛЬКО 13-й пин! Sketch3.with_bootloader.hex - моргает ТОЛЬКО 13-й пин! если шью Release Sketch3.elf - ВСЕ моргает Sketch3.hex - ВСЕ моргает Sketch3.ino.elf - ВСЕ моргает Sketch3.ino.hex - ВСЕ моргает Sketch3.ino.with_bootloader.hex - моргает ТОЛЬКО 13-й пин! Sketch3.with_bootloader.hex - моргает ТОЛЬКО 13-й пин! Как такое может быть?????
Например, воспользоваться objdump и посмотреть результат дизассемблирования. Таблица в самом начале, там куча jmp инструкций. Вектор сброса должен показывать или на загрузчик или на блок статической инициализации вызовом main в конце, если загрузчика нет.
Приведенную выше программу можно записать в несколько строк, например в 5. А в таком виде вызывает кровотечение из глаз. Ознакомьтесь с оператором цикла.