Что будет если выполнить pinMode(0, OUTPUT); pinMode(1, OUTPUT);?

Простите, Вы альтернативно одарены? Вы до сих не поняли как тут вставляется код? Или издеваетесь специально?

Теперь ответ на Ваш вопрос. При правильной схеме такой скетч никак, от слова “совсем никак, с какого бы хера?” не повредит Вашему контроллеру.

Вы когда-нибудь видели как устроен метод begin класса HardwareSerial?

Посмотрите
void HardwareSerial::begin(unsigned long baud, byte config)
{
  // Try u2x mode first
  uint16_t baud_setting = (F_CPU / 4 / baud - 1) / 2;
  *_ucsra = 1 << U2X0;

  // hardcoded exception for 57600 for compatibility with the bootloader
  // shipped with the Duemilanove and previous boards and the firmware
  // on the 8U2 on the Uno and Mega 2560. Also, The baud_setting cannot
  // be > 4095, so switch back to non-u2x mode if the baud rate is too
  // low.
  if (((F_CPU == 16000000UL) && (baud == 57600)) || (baud_setting >4095))
  {
    *_ucsra = 0;
    baud_setting = (F_CPU / 8 / baud - 1) / 2;
  }

  // assign the baud_setting, a.k.a. ubrr (USART Baud Rate Register)
  *_ubrrh = baud_setting >> 8;
  *_ubrrl = baud_setting;

  _written = false;

  //set the data bits, parity, and stop bits
#if defined(__AVR_ATmega8__)
  config |= 0x80; // select UCSRC register (shared with UBRRH)
#endif
  *_ucsrc = config;
  
  sbi(*_ucsrb, RXEN0);
  sbi(*_ucsrb, TXEN0);
  sbi(*_ucsrb, RXCIE0);
  cbi(*_ucsrb, UDRIE0);
}

строки №" 30 и 31 и отменяют стандартное использование пинов 0 и 1. Т.е. эти две строки, просто напрочь отменяют Ваши строки №№ ХЗ и ХЗ (мля! по Вашему, удобно обсуждать код, вставленный как у Вас?) в которых Вы типа на OUTUT настраиваете. Полностью отменят. Просто плюют на них и растирают! никаких следов от этих Ваших настроек больше (после строк №№ 30 и 31) не остаётся.

Надеюсь, Ваш вопрос снят?

не разбирался, но полагаю , что кнопка “как есть CTRL+E” позволит вставить код.

нет, но даже посмотрев на него в вашей цитате, на данный момент мне моих знаний не хватает (в частности, что такое sbi cbi я ещё не изучал) , чтобы сделать из него тот вывод, который вы написали. Тем не менее, я абсолютно верю написанному Вами и рад что есть такой чёткий ответ.
Что касается такого кода:

void setup(){
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
}

Я полагаю, что он тоже, например, не может поломать процесс заливки скетча, так как логически я могу предположить, что IDE перед прошивкой даёт команду CH340 на перезагрузку процессора Atmega, там грузится бутлоадер, и ественно бутлоадер pin0 и pin1 снова ставит в режим RX-TX и заливка скетча идёт нормально.
Надо будет почитать что такое бутлоадер вообще и как он работает в ардуино…

Так разберитесь. Вставлять так, как Вы, здесь считается прямым и нарочитым, показным неуважением к сообществу. Обычно, на так вставленные коды я вообще не смотрю, полагая, что кода нет вовсе. Не знаю, что на меня сегодня нашло.

Ну, это как бы … учитесь, что я могу сказать. Или, если не хотите учиться, верьте каждому посту, запощенному первого апреля :slight_smile:

До этого момента правильно.

А вот здесь.

Не “снова”! Они переключились на INPUT ещё во время перезагрузки (как и все остальные пины). Бутлоадер же просто делает с ними то, что ему нужно.

итого:

  1. указанный выше код никакого необратимого вреда плате не несёт.

  2. те проблемы, что возникли и напугали меня (не работает порт-монитор и stuck заливки скетча )- чисто проблемы IDE и с кодом скетча не связаны.

  3. сходу разобраться с переустановкой IDE 2 версии не заладилось, проблема моментально решилась даунгрейдом на 1.8.19 portable :slight_smile: плата ардуины без проблем заливается скетч и порт монитор работает,
    на платах LGT8F - плагин от nullab поставился, порт монитор работает нормально, заливка скечта производится, после заливки выводится текст ошибок
    ======
    avrdude: stk500_paged_load(): (a) protocol error, expect=0x10, resp=0xfe
    avrdude: stk500_cmd(): programmer is out of sync
    avr_read(): error reading address 0x0000
    read operation not supported for memory “flash”
    avrdude: failed to read all of flash memory, rc=-2
    avrdude: stk500_disable(): protocol error, expect=0x14, resp=0xfe
    Failed uploading: uploading error: exit status 1
    =====
    но это никак не мешает, т.к. stuck не происходит и IDE перезагружать не надо.

да я бы с удовольствием бы прочитал всю матчасть и быть может на ассемблере писал бы , но увы, время на сиё занятие (программирование ардуинки то бишь) ограничено =)

Позвольте позанудствовать) Пин может быть как выход, генерировать импульсы и этот же пин одновременно может быть входом аппаратного счетчика. Также можно читать напряжение на пине как выход с однобитным или 10 битным разрешением.

Ой, че ща будет…

1 лайк

Вот только как только проинициализирован сериал в 328ом он забирает выход Tx под себя и ничего генерить на нём не получится.

Настрочили полсотни сообщений, а на моё сообщение #11 никто внимания не обратил…

Ну да, а #34 Илик ещё добавил. Но это не прямо по теме. Прямо по теме это то что сериал будет работать только на выход и pinMode(0, OUTPUT); не переведёт в режим выхода ногу. Прошить другую прошивку можно будет после нажатия кнопки ресет, после отпускания которой будет секунда до начала загрузки.

да чё будет, ничё не будет, про 0 и 1 не скажу, а 3 в генераторе для катушки Мишина так и используется, через аналог райт Шимим, через прерывание обрабатываем энкодер, а к пину ничего не подключено, всё унутрях, всё унутрях