реклама на сайте
подробности

 
 
> операция сдвига на 28 разрядов для 16-ти разрядного МК, вопрос
addi
сообщение Aug 1 2013, 05:25
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Здравствуйте, вопрос по тому как лучше написать на Си

Есть MSP430, 16 бит.
Работает с внешней микросхемой по SPI, 8 бит.
У внешней микросхемы все регистры 32 бита.
Значения 32 битных регистров разбиты по 1,2,3,4, итд битам, поэтому удобный доступ можно осуществлить с помощью дефайнов, например

#include <msp430f149.h>
#include "functions.h"

// reg0

#define ANZ_FIRE_0 0x0<<28
#define ANZ_FIRE_1 0x1<<28
#define ANZ_FIRE_2 0x2<<28

Но проблема в том что сдвиг на количество разраядов большее 15 вызывает логичное предупреждение компилятора.
В связи с этим прошу подсказать как можно обойти эту проблему, например будет ли решение через объединение 4 uchar в ulong единственно правильным.

Заранее благодарен

Сообщение отредактировал addi - Aug 1 2013, 05:26
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 09:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016