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

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

Ответ: вот вся портянка....

Отправлено MixEr 02 марта 2007 г. 11:34
В ответ на: ну а чего инициализация - все хозяйство выкладывайте уж - включая диспетчер IRQ и сам обработчик отправлено DASM 01 марта 2007 г. 17:21

TUART::TUART()
{
/* Initialize Pin Select Block for Tx and Rx */
PINSEL0|=0x5;
/* Enable FIFO's and reset them */
U0FCR=0x7;
/* Set DLAB and word length set to 8bits */
U0LCR=0x83;
U0DLL = BAUDRATEDIVISOR & 0xff;//записываем младший байт
U0DLM = (BAUDRATEDIVISOR >> 8) & 0xff;//записываем старший байт
/* Clear DLAB */
U0LCR=0x3;
/* Enable FIFO's and reset them */
U0FCR=0x7;
//Enable UART0 interrupts
U0IER_bit.RDAIE = 1; //Enable byte received interrupt
U0IER_bit.THREIE = 1; //Enable tx buf empty interrupt
U0IER_bit.RXLSIE = 1;
VICIntSelect &= ~VIC_UART0_bit; // IRQ on UART0.
VICVectAddr5 = (unsigned int)&UART0isr;
VICVectCntl5 = 0x20|isrUART0;// Enable vector interrupt for UART0.
VICIntEnable |= VIC_UART0_bit;// Enable UART 0 interrupt.
}

void TUART::UART0isr(void)
{
switch(U0IIR_bit.IID)
{
case 0x1: //THRE interrupt
break;
case 0x2: //Receive data available
break;
default:
break;
};
VICVectAddr = 0x00; //Dummy write to signal end of interrupt
};

Это весь код с инициализацией и обработчиком. При таком раскладе прервание по передаче возникает а по приему нет. О возникновении прерывания сужу по переменной, которую инкрементирую либо по событию приема либо по передаче.
Затем значение переменной просто на экран вывожу.

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

Ответы


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

Сообщение:

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

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

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

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