Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

UART0 на СС25хх выдаёт лишний первый байт. Иногда 2 раза иногда 3. Как убрать?? Внутри исходный код.

Отправлено Lexus 03 сентября 2008 г. 16:03


ПРОБЛЕМА!
пишу в порт последовательность
07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 ................
а в итоге получаю
07 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 ................
07 07 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 .............
т.е. первый байт любой последовательности просто повторяется
вызов передачи делаю просто по uartStartTxForIsr();
IEN2 &= ~0x04; - обратите внимание в даташите там стоит 0х08,
но это бит вроде не относится к УАРТ0, а относится к УАРТ1,
это они в примере ошиблись или я что-то туплю???
Это стр.19 даташита http://focus.ti.com/analog/docs/techdocsabstract.tsp?familyId=1625&abstractName=swra222
Я прогу делал именно по нему


extern unsigned short __xdata uartTxBuffer[SIZE_OF_UART_TX_BUFFER];
extern unsigned short __xdata uartTxIndex;


void uartStartTxForIsr(void)
{
uartTxIndex = 0;
UTX0IF = 0;
IEN2 |= 0x04; U0DBUF = uartTxBuffer[uartTxIndex++];
IEN0 |= 0x80;
}

extern unsigned short __xdata uartTxBuffer[SIZE_OF_UART_TX_BUFFER];
extern unsigned short __xdata uartTxIndex;
_Pragma("vector=0x3B") __near_func __interrupt void UART0_TX_ISR(void);
_Pragma("vector=0x3B") __near_func __interrupt void UART0_TX_ISR(void){
UTX0IF = 0;

if (uartTxIndex >= SIZE_UART_TX_DATA) {
uartTxIndex = 0; IEN2 &= ~0x04; // ЗДЕСЬ БЫЛО 0x08,
//но это вроде для USART1 или нет???
return;
}
U0DBUF = uartTxBuffer[uartTxIndex++];
}


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
к трём прибавьте 5:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru