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

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

застрял, Accessing UBRRH/UCSRC Registers для Меги32 и иже с ними на Сях[+]

Отправлено MegaJohn 15 мая 2008 г. 16:27


Как быть если регистр UCSRC записывается не за одну команду, а за несколько ?

то есть имею код (UCSR0C = UCSRC и по аналогии)
SETBIT( UCSR0C, URSEL0 ); // чтобы получить доступ к UCSR0C
CLEARBIT( UCSR0C, UMSEL0 ); // 0 - асинхронный режим
if( port_cfg & CPF_is_parity )
{ // с паритетом
SETBIT( UCSR0C, UPM01 );
if( port_cfg & CPF_is_even )
CLEARBIT( UCSR0C, UPM00 ); // четный
else
SETBIT( UCSR0C, UPM00 ); // нечетный
}
else
{ // без паритета
CLEARBIT( UCSR0C, UPM00 );
CLEARBIT( UCSR0C, UPM01 );
}

if( port_cfg & CPF_is_2stop_bits )
SETBIT( UCSR0C, USBS0 ); // 2 стоповых бита
else
CLEARBIT( UCSR0C, USBS0 ); // 1 стоповый бит

// размер данных = 8 бит
SETBIT( UCSR0C, UCSZ01 );
SETBIT( UCSR0C, UCSZ00 );
CLEARBIT( UCSR0B, UCSZ02 );

Вроде бы все честно, но установка/сброс каждого бита производится по маске,

то есть команда
CLEARBIT( UCSR0C, UMSEL0 );
ассемлируется в
IN R19,0x20
ANDI R19,0xBF
OUT 0x20,R19

но учитывая специфику доступа к этому регистру чтобы получить значение нужного бита должен делать так
IN R19,0x20
IN R19,0x20
ANDI R19,0xBF
OUT 0x20,R19

как бы на сях это сделать чтобы "If the register location was read in previous system
clock cycle, reading the register in the current clock cycle will return the UCSRC
contents"

что-то я в ступоре


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

Ответы


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

Сообщение:

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

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

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

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