1- Макетки с 8535 сейчас у меня нет, как раз паяю.
2- Есть макетка с мега8, на ней и попробовал. Кварц тут 4МГц,
поэтому скорость УАРТ была 2400, чтобы не менять уставку.
Терминал использовал с
http://bray.velenje.cx/avr/terminal/У меня на макетке выводы прерывания
INT0 - подключен к регулируемому генератору меандра ~0.1...2сек
INT1 - висит в воздухе.
После зашивки Вашего кода в мега8 действительно понесся мусор.
После изменения прерывания на INT0 (где у меня генератор) выводит
данные без сбоев.
После того как включил подтягивающий резистор на INT1,
DDRD &= (1<<3); // PD3(INT1) INPUT
PORTD |=(1<<3); //PULUP
мусор перестал идти, но при замыкании/размыкании вывода INT1
перемычкой на ноль, шло очень много сбоев (дребезг контактов).
После того как в конце подпрограммы прерывания INT1 о
тключил прерывание
GICR &= ~(1<<7);//disable INT1
}
а после передачи последнего байта группы включил
прерывания и поставил очистку флага прерывания
(пока группа передается, насколько я понимаю,
нам прерывания INT1 не нужны)
if (transmit==4) {
UDR=date; // отпровляю байт данных
transmit=-1; // сбрасываю счетчик байт
UCSRB&=0xdf; // // запрещаю прерывание по опустошению UDR
GICR |= (1<<7);//enable INT1
GIFR = (1<<7);//reset INT1 flag
}
сбои прекратились.
________________
Александр
2006 05 10
PS По моему, для устранения наводок лучше не подтягивающий резистор,
а где-то 1...10кОм, а после еще добавить RC-цепочку,
она также и уменьшить влияние дребезга.