Все верно,у меня атмега 328 в DIP28
Понятно.
То есть освобождаются выводы PC1 PC2 PC3.
Можете использовать любой на свой выбор.
Вот эта строка, которая управляет кнопкой:
if (bit_is_clear(PINC, 7)) tx();
Здесь кнопка на выводе порта С, седьмой вывод. Смотря как удобнее на плате, можете вместо семерки написать 1,2 или 3. Кстати, тут я ошибся, судя по даташиту вывод ADC7 не является портом. Зная, что ADC1 и прочие до ADC5 могут быть как входами преобразователя, так и портами, я это применил и к ADC6, 7, а это не так.
Это нужно сделать в ****** Основная программа ********* или в ********* Передача ********* ?
Это нужно сделать везде. И в основной программе и в функции передача.
if (bit_is_clear(PINС, 7)) tx(); Это строка в основном модуле программы. Переписываете ее так:
if (bit_is_clear(PINС, 1)) tx(); //Как выше написал, вместо единицы можно также 2 или 3.
Строку из функции передача, надо откорректировать вот так:
while (bit_is_clear(PINС, 1)); // Кнопка нажата - продолжаем передачу