[an error occurred while processing this directive]
|
sysclk =3 Мгц, от нее же идут таймеры(Т2 и Т1).
На USART1 в f340 свой baud rate генератор (не от штатного таймера, в отличие от USART0 с brGen на T1). SBRLH:SBRLL= 0xFF64 (~9615бод), тактируется от sysclk (прескалер= 1).
Формат: старт,8 бит,1 extra bit, 1 стоп - итого ~1,14 мс/симв (сорри, в корне фигню спорол).
таймаут на прием - при перезагрузке таймера в 0х8000 получается 32767х0.333мкс=10.9мс
Отрывается при организации таймаута на Т2 на 3..16 символе - 3,42..18,2 мс (в отладчике при обрыве вываливаюсь на прерывание от Т2).
Таймер стартует с 0х8000 при приеме первого символа, далее
при приеме каждого символа просто перезагружаю таймер в 0х8000.
Авторелоад не трогаю, он стоит в 0х0000 и в принципе не должен никак мешать(?), т.к. при первом же прерывании от таймера я этот тймер останавливаю.
Никаких особенностей режима с автоперезагрузкой в даташите не нашел
(мож плохо искал?).
Фишка в том, что с теми же параметрами, но на Т1 машинка пашет правильно. Эдесь возник больше спортивный интерес - почему так?