Значится так.
Одной из задач второй платы моего устройства на ATmega128 является передача отладочной инфы на компьютер по интерфейсу RS232.
Ну и я начал писать прошивку с того, что инициализировал USART1 и передавал строку или символ по интерфейсу.
Но в окне Terminal почему-то появлялась эта строка или символ многое количество раз и с непонятно большой скоростью.
Я решил поставить _delay_ms(1000); после инициализации (на всякий случай

)
Тогда при перепрошивке символы в Terminal перестали передаваться.
В итоге я решил забить на RS232 и просто поморгать светодиодом через ножку порта.
написал прогу что-то наподобие:
CODE
int main() {
DDRA = (1 << PA2);
while (1) {
PORTA |= (1 << PA2);
_delay_ms(1000);
PORTA &= ~(1 << PA2);
_delay_ms(1000);
}
}
а светодиод почему-то моргал с частотой около 10 Гц.
и тут меня осенило! закомментил цикл while
CODE
int main() {
DDRA = (1 << PA2);
//while (1) {
PORTA |= (1 << PA2);
_delay_ms(1000);
PORTA &= ~(1 << PA2);
_delay_ms(1000);
//}
}
,а программа работает точно так же!
проверил питание - все в порядке, резет тоже стабильный, а микроконтроллер перезагружается.
Подскажите, пожалуйста, в чем может быть проблема!