20.02.2014, 19:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от niXto
|
Холлы точно не будут работать при -100
|
Сегодня проверил. Действительно: на -90°C у датчика Холла выходной транзистор превращается в проводник. При более низких температурах вообще хрен знает что творится. Но это фигня — холлы будут стоять в зоне, которая ну никак не будет иметь такую низкую температуру. Коллега сегодня посмеялся над моей кошмарной конструкцией, удивился, нафига я леплю на турели шаговики. Я и сам не знаю, зачем туда ШД пихал ☺
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
26.02.2014, 18:42
|
|
Временная регистрация
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Ранее не имел дела с массивами (и ещё много с чем). Подскажите, правильно ли написана функция переноса массива Array, располагающегося в ПЗУ в массив Screen, который в ОЗУ? Возможны ли варианты короче или проще?
/* Загрузка массива для LCD 16x2 из Flash в ОЗУ ******/
void Load_Buffer_LCD (void);
void Load_Buffer_LCD (void)
{
u32 Count = 0; // Счетчик циклов загрузки
char Array [] = {'s','e','r','g','e','y','y','e','@','m','a','i',' l','.','r','u',
'F','r','e','q','u','e','n','c','y',' ','m','e','t','e','r',' '};
char *addr_B; // Указатель на массив в ОЗУ
char Screen [32]; // Массив в ОЗУ для вывода в дисплей
addr_B = &Screen [0]; // Указателю присвоил адрес начала массива в ОЗУ
char *addr_Z; // Указатель на массив в Flash
addr_Z = &Array [0]; // Указателю присвоил адрес начала массива в Flash
while (Count != 32) // Копирую 32 байта ПЗУ в 32 байта ОЗУ
{ *addr_B = *addr_Z;
Count ++; }
}
|
|
|
|
26.02.2014, 19:18
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,561
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от sergeyye
|
while (Count != 32) // Копирую 32 байта ПЗУ в 32 байта ОЗУ
{ *addr_B = *addr_Z;
Count ++; }
|
Один и тот же байт копируете в одно и то же место 32 раза. Да и такое условие выхода из цикла чревато...
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
26.02.2014, 19:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Еще маленькое дополнение.
Сообщение от sergeyye
|
char Array [] = {'s','e','r','g','e','y','y','e','@','m','a','i',' l','.','r','u',
'F','r','e','q','u','e','n','c','y',' ','m','e','t','e','r',' '};
|
И не лень же было запятые с апострофами ставить! Вот так надо:
Код:
|
char *Array = "trulala@tralala.trololoFigfam"; |
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
26.02.2014, 19:34
|
|
Временная регистрация
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
akegor, раскритикуйте пожалуйста поподробней. Си со мной никак дружить не хочет.
Eddy, не в лени дело - в отсутствии опыта и недостатке информации. С трудом собираю по крупицам, где - что почитать.
Последний раз редактировалось sergeyye; 26.02.2014 в 19:38.
|
|
|
|
26.02.2014, 19:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Код:
|
Count = 0;
while(Count++ ‹ 32)
*addr_B++ = *addr_Z++; |
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
26.02.2014, 19:36
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
А еще надо поставить const, иначе массив будет сам копироваться в ОЗУ в стартапе.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
26.02.2014, 19:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
А еще надо поставить const, иначе массив будет сам копироваться в ОЗУ в стартапе.
|
Кстати, да: сегодня с полчаса ломал голову, почему у меня не сохраняются данные в сегменте program memory при модификации. А тупо надо было const сделать, чтобы ячейка имела адрес изначально, а не инициализировалась в стартапе.
// правда, то было не для STM32
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
26.02.2014, 19:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
sergeyye,
memcpy нынче не в моде?
|
|
|
|
26.02.2014, 20:04
|
|
Временная регистрация
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Спасибо всем!
Const поначалу поставил, но потом засомневался, убрал и забыл про него.
А с постинкрементом оплошал. В исходнике (моего-же сончинительства, но не Си), с которого транслировал, это есть и работает.
Последний раз редактировалось sergeyye; 26.02.2014 в 20:13.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:16.
|
|