09.02.2015, 11:07
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Почему? Конечный автомат рулит процессами, а сами процессы могут быть хардварными или полухардварными.
Даже на занюханой STM8S003 можно рулить 1-wire, IR приём/передачей, динамической индикацией, UARTом и ещё чем-то практически одновременно. Главное правильно расставить приоритеты.
|
|
|
|
09.02.2015, 12:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Ладно, убедили. Втыкаю обработку сигналов управления затвором внутрь КА, а не в прерывание.
Я так прикинул, что даже если все КА одновременно будут в каких-то хитрых состояниях, что придется много считать, все равно вряд ли будет задержка больше 5-10мс, а это — ничто по сравнению с общим временем экспозиции (да и просто само время открывания/закрывания затвора около 20мс!).
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
09.02.2015, 13:13
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от pambaru
|
Вспомнилось - одну демку видел от NXP. Там основной цикл состоял из while (1);
Все остальное делалось в прерываниях
|
Вспомнилась фраза на потустороннем ресурсе:
Цитата:
|
задача очень простая: прикрутить к меге два восьмиразрядных семисегментника, один дисплей типа N1616, и один типа N82 (шина восьмиразрядная), и чтобы это всё крутилось одновременно и быстро и без единного прерывания!
|
Конечно это просто молоток с гвоздями для Меги, однако даже для STM32F0xx это вполне осуществимо и в целом можно даже дисплеев добавить. Всё просто упрётся в количество ДМА и TIM.
И если говорить о демке, то в данном случае при "основной цикл состоял из while (1);" ещё и прерывания отсутствуют.
|
|
|
|
09.02.2015, 14:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от STM32F0
|
задача очень простая: прикрутить к меге два восьмиразрядных семисегментника, один дисплей типа N1616, и один типа N82 (шина восьмиразрядная), и чтобы это всё крутилось одновременно и быстро и без единного прерывания!
|
Нет ничего проще: мега ретранслирует всё, что в неё попадает в STM (без единого прерывания, заметьте, тупо поллингом), а тот отрабатывает и дисплеи, и семисегментники, и перделку какую можно прикрутить...
Вуаля!
(на ПЛИСке можно конечных автоматов нарубить, кстати)
|
|
|
|
10.02.2015, 01:47
|
|
Прописка
Регистрация: 17.10.2010
Сообщений: 113
Сказал спасибо: 2
Сказали Спасибо 20 раз(а) в 12 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от omercury
|
Смотрю, прямо революция в вычислительных системах назревает.
Вы историю этак тридцатилетней давности почитайте, как это всё было организовано и как работало, узнаете много нового.
Когда прерываний было всего 2, одно маскируемое, а второе - немаскируемое, а контоллер прерываний был внешним.
Нынешние МК умеют генерировать прерывания практически по любому чиху.
|
Сообщение от eddy
|
Черт, бьюсь как рыба об лед. Перерыл мануал, но так и не понял: есть ли надежда завести на STM32F103 внешние прерывания EXTI на одноименные пины разных портов (скажем, PA7, PB7 и PC7)?
А то думал всякие Холлы-концевики повесить на прерывания, чтобы флаги ставить, а не проверять непрерывно, да вот одновременно задействованы одинаковые биты разных портов, схемотехнически не получилось все внешние источники на 1 порт повесить ☹
Это невозможно, как говорит даташит?
|
С объединением 3-х сигналов в один - сюда писал. Хотел человек на прерываниях сделать - а сразу 3 не получается. 3 детальки и не надо исправлять разводку по пинам. В одном прерывании обрабатывать предложил именно потому, что нельзя было задействовать 3 по условиям задачи (выше), т.е. чих в современном микроконтроллере не получался.
При чем тут открытие америки? КР580ВН59 ? Щупал его 28 лет назад ... это давно было, собрал РК86, а потом раскурочил у отца на работе что-то типа промышленного компьютера для управления пром тех процессами (его не смогли настроить и списали), вот там и был и контроллер прерываний ... сейчас мне 43.
Последний раз редактировалось avtoneru; 10.02.2015 в 02:23.
|
|
|
|
10.02.2015, 11:26
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от avtoneru
|
С объединением 3-х сигналов в один - сюда писал. Хотел человек на прерываниях сделать - а сразу 3 не получается. 3 детальки и не надо исправлять разводку по пинам. В одном прерывании обрабатывать предложил именно потому, что нельзя было задействовать 3 по условиям задачи (выше), т.е. чих в современном микроконтроллере не получался.
|
Цитата:
|
Перерыл мануал, но так и не понял: есть ли надежда завести на STM32F103 внешние прерывания EXTI на одноименные пины разных портов (скажем, PA7, PB7 и PC7)?
А то думал всякие Холлы-концевики повесить на прерывания, чтобы флаги ставить, а не проверять непрерывно, да вот одновременно задействованы одинаковые биты разных портов, схемотехнически не получилось все внешние источники на 1 порт повесить
|
Читать даташиты надо ДО, а не ПОСЛЕ!
И о чём это должно говорить?
|
|
|
|
10.02.2015, 11:53
|
|
Прописка
Регистрация: 17.10.2010
Сообщений: 113
Сказал спасибо: 2
Сказали Спасибо 20 раз(а) в 12 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от STM32F0
|
И о чём это должно говорить?
|
Флуд это, ни чем.
Сообщение от STM32F0
|
Читать даташиты надо ДО, а не ПОСЛЕ!
|
Как цитату можно использовать.
И помогать другим - советом - тоже можно.
|
|
|
|
22.02.2015, 08:42
|
|
Прописка
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Подскажите,
нужно сдвинуть семибайтную строку - uint8_t data_bufer[7] - на пять битов в право
Была бы uint64_t, проблем бы не было.
Как скопировать семибитную строку uint8_t data_bufer[7] в uint64_t temp ?
Или как это в асме сделать?
Код для PIC18 вот сдвиг с битом переноса, нужно для STM32F103RBT6 переделать
PHP код:
|
#asm
bcf STATUS, 0
rrcf _data_bufer+6,1,1
rrcf _data_bufer+5,1,1
rrcf _data_bufer+4,1,1
rrcf _data_bufer+3,1,1
rrcf _data_bufer+2,1,1
rrcf _data_bufer+1,1,1
rrcf _data_bufer+0,1,1
rrcf _data_bufer+6,1,1
rrcf _data_bufer+5,1,1
rrcf _data_bufer+4,1,1
rrcf _data_bufer+3,1,1
rrcf _data_bufer+2,1,1
rrcf _data_bufer+1,1,1
rrcf _data_bufer+0,1,1
rrcf _data_bufer+6,1,1
rrcf _data_bufer+5,1,1
rrcf _data_bufer+4,1,1
rrcf _data_bufer+3,1,1
rrcf _data_bufer+2,1,1
rrcf _data_bufer+1,1,1
rrcf _data_bufer+0,1,1
rrcf _data_bufer+6,1,1
rrcf _data_bufer+5,1,1
rrcf _data_bufer+4,1,1
rrcf _data_bufer+3,1,1
rrcf _data_bufer+2,1,1
rrcf _data_bufer+1,1,1
rrcf _data_bufer+0,1,1
rrcf _data_bufer+6,1,1
rrcf _data_bufer+5,1,1
rrcf _data_bufer+4,1,1
rrcf _data_bufer+3,1,1
rrcf _data_bufer+2,1,1
rrcf _data_bufer+1,1,1
rrcf _data_bufer+0,1,1
#endasm
|
|
|
|
|
22.02.2015, 09:24
|
|
Прописка
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Попробуй как то так, я копировал в 32 битную переменную из 8 битного массива
id_data = __REV(*(__IO uint32_t *)(uint32_t)&(moimassiv[l]));
Последний раз редактировалось neyvert; 22.02.2015 в 09:28.
|
|
|
|
22.02.2015, 10:02
|
|
Прописка
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от neyvert
|
Попробуй как то так, я копировал в 32 битную переменную из 8 битного массива
id_data = __REV(*(__IO uint32_t *)(uint32_t)&(moimassiv[l]));
|
он только один байт копирует moimassiv[l], I-ый байт в строке ?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:21.
|
|