Помогите с arduino pro mini

timelord
Offline
Зарегистрирован: 22.06.2017

Имеется ардуино про мини, рабочий приёмник с нрф24л01, выдавала ппм сигнал при помощи timerOne. Решил проверить одно из выдаваемых значений, добавил отправку в порт, прошил. Увидел значения когда передатчик выключен, включил передатчик, связь не установилась(передатчик передаёт, проверено др приёмником). Решил перезапустить приёмник и после этого я уже не видел никаких значений в порту, хотя синий светодиод на программаторе горит, значит ардуино на сколько я понимаю передаёт данные в порт, прошить заново тоже не могу, просто висит безконца надпись загрузка.

вот скетч

 


#include <TimerOne.h>





volatile int delays[12] = {
  1800, 1700, 1600, 1500, 1400, 1300, 2200, 2200, 2200, 2200, 2200, 2200
};
byte i = 0;
unsigned long time;
void setup() {
  Serial.begin(9600);
  Timer1.initialize();
  pinMode(9, OUTPUT);  // D9 - Пин вывода "PPM" сигнала
  Timer1.attachInterrupt(Timer1_action, 300);

  delay(50);

}
byte state = false;
byte pulse = false;
void Timer1_action() {
  digitalWrite(9, state);
  if (!pulse) {
    Timer1.setPeriod(300);
    pulse = 1;
  }
  else {
    Timer1.setPeriod(delays[i] - 300);
    pulse = 0;
    i++;
  }
  state = !state;
  if (i == 13) {
    int pause = 0;
    for (byte t = 0; t < 12; t++) {
      pause += delays[t];
    }
    Timer1.setPeriod(32500 - pause);
    i = 0;
  }
}
void loop() {
  
    delays[2] = map(analogRead(2), 150, 850, 1000, 2000); // 3ий канал - газ

  delays[0] = map(analogRead(0), 0, 1023, 2000, 1000); // 1ый канал - право / лево
  delays[1] = map(analogRead(1), 0, 1023, 1000, 2000); // 2ой канал - вперёд / назад
  delays[3] = map(analogRead(3), 0, 1023, 2000, 1000); // 4ый канал - Рудер (Rudder)
  delays[4] = 1500; // 5ый канал - доп. канал - правый тумб. 3пос
  delays[5] = 1500; // 6ой канал - доп. канал - левый тумб. 3пос
  delays[6] = 1500; // 7ой канал - доп. канал - правый тумб. 2пос
  delays[7] = 1500;
  delays[8] = 1500;
  delays[9] = 1500;
  delays[10] = 1500;
  delays[11] = 1500;

  Serial.println(delays[2]);
  
} // 8ой канал - доп. канал - левый тумб. 2пос

 

DIVGENY
Offline
Зарегистрирован: 23.08.2016

жми кноку RESET и отпускаем в тот момент, когда твой новый скетч скомпилируется.

не мешало бы делать паузы или условие, а то у тебя COM порт с ума сойдет...

timelord
Offline
Зарегистрирован: 22.06.2017

ну именно таким способом я и залил это скетч, так что это не поможет, походу мой программатор сдох, такое возможно?