Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UART в меге48
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
XRayMan
Интересует вопрос такого плана. Можно ли одновременно в формате кадра выставить 9 бит данных и контроль четности? Когда ставлю 9 бит данных, пропадает бит четности, когда ставлю 8 бит - четность появляется. Проверяю пока на VMLAB 3.14. Это врет ВМЛАБ или как?
Пишу на C в среде CodeVisionAVR 1.24.8.

Инициализация UART
Код
UCSR0A=0x00;
UCSR0C=0b00101110; // асинхронный, even parity, 2 stop, 9 data, rising edge
UBRR0H=0x00;
UBRR0L=0x07;
UCSR0B=0b00001100; // TXen, 9 data


Посылка данных, для наглядности в VMLAB, посылаю 0
Код
while(1)
{
UCSR0B&=0xFE; // старший бит данных - 0
UDR0=0; // данные 0
while(!(UCSR0A&0x20)){}
}
Палыч
Цитата(XRayMan @ Feb 3 2009, 18:27) *
Можно ли одновременно в формате кадра выставить 9 бит данных и контроль четности? Проверяю пока на VMLAB 3.14. Это врет ВМЛАБ или как?
DS говорит, что - можно. Проверять это в VMLAB - моветон...
XRayMan
Цитата(Палыч @ Feb 3 2009, 18:11) *
DS говорит, что - можно. Проверять это в VMLAB - моветон...


Понятно, спасибо за ответ. Завтра доберусь до программатора, проверю нормально happy.gif
МП41
В Протеусе, например, сказано, что некоторые особенности УАРТа (например бит 2X) не моделируются, поэтому можно предположить, что и в VMLAB могут быть подобные ограничения.
XRayMan
Прошил контроллер, действительно пашет одновременно 9 бит данных и бит четности. По крайней мере в 48 меге ph34r.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.