22.02.2015, 10:07
|
|
Прописка
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Я уже думал так сделать:
(uint64_t) sherk_bufer = data_bufer[0] + 0xFF*data_bufer[1] + 0xFF00*data_bufer[2] + 0xFF0000*data_bufer[3] + 0xFF000000*data_bufer[4] + 0xFF00000000*data_bufer[6] + 0xFF000000000000*data_bufer[7];
Потом сдвиг sherk_bufer=sherk_bufer››5;
Потом обратное преобразование в строку data_bufer[] ...................
Но сколько это займет команд, на асемблере было бы быстрее.
|
|
|
|
22.02.2015, 11:08
|
|
Вид на жительство
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Такой вопрос.
STM32F100
По событию таймера TIM1 CC1 надо запускать АЦП с одиночным регулярным преобразованием(ADC EXTSEL=0, EXTTRIG=1). В конце преобразования(EOC) чтоб вызывался ADC1_IRQHandler. Чтобы я не делал, всё молчит. Отладчиком вижу, что запуск не происходит.
Пока выкрутился через запуск инжекционной группы АЦП(выход TIM1_TRGO, ADC JEEXTSEL=0, JEXTTRIG=1). Но хотелось бы разобраться в причине.
Есть ли у кого рабочий пример такой инициализации связки таймера и АЦП?
|
|
|
|
22.02.2015, 11:14
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
russo_turisto, а для чего это вообще нужно сделать? может это можно реализовать по другому, чем сдвигом массива?
|
|
|
|
22.02.2015, 13:39
|
|
Прописка
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от russo_turisto
|
он только один байт копирует moimassiv[l], I-ый байт в строке ?
|
потому и копирует один байт! там не 1 а l(L) адрес начала!
|
|
|
|
22.02.2015, 14:42
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от neyvert
|
Попробуй как то так, я копировал в 32 битную переменную из 8 битного массива
id_data = __REV(*(__IO uint32_t *)(uint32_t)&(moimassiv[l]));
|
Много шума и лишних телодвижений.
Считать массив, реверсировать, сдвинуть, опять реверсировать, записать в массив. Грустно.
Вопрос только в "записать в массив", чтобы ничего лишнего не затёрло. Самый простой выход - сделать массив в 8 байт, а юзать в проге только 7.
Последний раз редактировалось STM32F0; 22.02.2015 в 16:09.
|
|
|
|
22.02.2015, 15:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от russo_turisto
|
Была бы uint64_t, проблем бы не было.
|
signed/unsigned long long
Или нет? (с)
|
|
|
|
22.02.2015, 15:20
|
|
Прописка
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от STM32F0
|
Много шума и лишних телодвижений.
|
А в чем лишние телодвижения, взять из uint8_t массива четыре байта и положить в uint32_t переменную! и двигать ничего не нужно.
|
|
|
|
22.02.2015, 15:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от neyvert
|
uint8_t массива четыре байта и положить в uint32_t переменную!
|
Сообщение от russo_turisto
|
нужно сдвинуть семибайтную строку - uint8_t data_bufer[7] - на пять битов в право
|
То есть разделить uint56_t на 32.
|
|
|
|
22.02.2015, 16:08
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от omercury
|
signed/unsigned long long
Или нет? (с)
|
Или нет! Это для прыщавых красноглазиков, для нормальных пацанов uint64_t.
|
|
|
|
22.02.2015, 16:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от STM32F0
|
uint64_t
|
Дык достаточно и 56.
Какая разница, из скольки элементов этот U
(в смысле, автор вопроса говорил, что uint64 как бы не существует)
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:16.
|
|