Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Члены union не запиховываются в струткуру? А чё надо-то?
Отправлено
Vit
(77.123.100.54)
15 августа 2010, г. 09:54
В ответ на:
ИАР Си не пропускает ни одну из строчек. А как же надо? >>
отправлено
VasilyS
15 августа 2010, г. 09:28
Составить ответ
|
Вернуться на конференцию
Ответы
Нужно сдвинутый влево адрес PINE засунуть во флеш-массив. Любым путём. И всё.
-
VasilyS
(15.08.2010, 09:57:26
80.92.96.25
,
пустое
)
Причом >>
-
VasilyS
(15.08.2010, 10:02:51
80.92.96.25
, 193 байт)
Предельно упрощу задание >>
-
VasilyS
(15.08.2010, 10:10:17
80.92.96.25
, 290 байт)
__io union во __flash int []? Тупик. Может скажешь, чего по сути надо?
-
Vit
(15.08.2010, 10:17:14
77.123.100.54
,
пустое
)
Ну по стараюсь. Формирую в массиве код асм-команды SBI ior, bit, в котором есть: CОP(для простоты опущен) | сдвинутый влево адрес io-регистра | номер бита(тоже пока опущен)
-
VasilyS
(15.08.2010, 10:24:41
80.92.96.25
,
пустое
)
может функцию заинлайнить? оно вроде С99 - на инлайны указатели брать магёт
-
Vit
(15.08.2010, 10:27:9
77.123.100.54
,
пустое
)
Ну не знаю. Главное - знаю ведь в чом дело. PINE объявлен так побляццки что компилер считает его указателем. А с указателями - только адресная арифметика, сложение и вычитание, и никаких умножений (сдвиг это тоже умножение)
-
VasilyS
(15.08.2010, 10:30:45
80.92.96.25
,
пустое
)
Инициализировать что-либо можно лишь константой. Ибо компилятор токмо.
-
Неспящие_в
(15.08.2010, 10:15:54
192.168.24.76,89.184.24.74
,
пустое
)
Все явки и адреса известны до этапа компиляции. В принтфе вон взял и съел. Замените в массиве << на + и тоже схавает.
-
VasilyS
(15.08.2010, 10:19:11
80.92.96.25
,
пустое
)
А чо, асм командами можно произвести cдвиг во флэши? Как себе это представляешь не вынимая переменную из флэши? Вот и компилер не представляет как это сделать :))) Сдвинь вначале, а потом пихай :)
-
PaulS
(15.08.2010, 10:37:22
89.179.25.120
,
пустое
)
Да не... Есть технология недавно показывал вызова флешь-массива как функции из Си. Ну и в этом массиве некрасиво писать просто коды, а хотелось >>
-
VasilyS
(15.08.2010, 10:46:32
80.92.96.25
, 512 байт)
PINx вроде только для чтения...
-
Vit
(15.08.2010, 11:24:40
77.123.100.54
, 813 байт)
Генерит, да. А как такую GenAsm(PORTE, 2) во флеш массив засунуть?
-
VasilyS
(15.08.2010, 11:35:41
80.92.96.25
,
пустое
)
Получилось проще. Но как в массив пихать не знаю
-
Vit
(15.08.2010, 12:03:8
77.123.100.54
, 181 байт)
и результат приводить вручную необязательно
-
Vit
(15.08.2010, 12:13:12
77.123.100.54
,
пустое
)
точку с запятой в конце лишнюю пририсовал
-
Vit
(15.08.2010, 12:05:25
77.123.100.54
,
пустое
)
А хочется просто, ведь компилятор знает где PORTE где PINE: asm_SBI( PINE, 3 ) ,asm_SBI( PORTE, 4 ) ,
-
VasilyS
(15.08.2010, 10:52:28
80.92.96.25
,
пустое
)
Ах вона чо :) А смысел всего этого мудрежа?
-
PaulS
(15.08.2010, 11:13:17
89.179.25.120
,
пустое
)
Конечно, написание асм-функций в отдельном асм-файле это не заменит. Простенькие асмушки в пяток-десяток команд оформлядь прямо в С-файле как массивчики. Самое главное - не обязательно одномерные!, и по индексу можно косвенно выбирать по какому пути пройтись и какой дрючить. Уж больно ущербна встроенная в компилер asm("..."); технология, где ни номера io-регистра, ни условного перехода сделать.
-
VasilyS
(15.08.2010, 11:21:15
80.92.96.25
,
пустое
)
т.е. в массив. но разницы нет - всё равно не захатит
-
Vit
(15.08.2010, 09:56:45
77.123.100.54
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите два из трёх, получится:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru