21.02.2017, 15:16
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от zöner
|
и зачем ждать если есть прерывания?
|
А зачем вы ждёте? Ведь это уже глупо! Или у вас глупость традиционно зашкаливает?
|
|
|
|
21.02.2017, 15:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от zöner
|
ни задержка получилась неточной...
|
Для того, чтобы она была точной, используются DMA с таймерами или другие аппаратные ресурсы, соответствующие задачей. Я неспроста про шаговики вспомнил.
Все остальные вещи (общение с датчиками по I2C, SPI и т.п.) требуют лишь выдержать минимальную задержку (а то и вообще поллинг позволяют).
Цитата:
|
и зачем ждать если есть прерывания? в том числе на USB...
|
В прерывании тупо указывается флаг. Еще можно минимальную обработку данных ввести (скажем, проверить: пришел ли символ '\n' и тогда выдать флаг окончания строки), но все равно выставить флаг. А все остальное пусть делается в основном цикле.
Я уже упоминал абдуринщиков, которые любят в прерывания пихать жирные функции, по сотне микросекунд выполняющиеся. Один раз запихнут, другой, а на третий раз у них непонятки: МК зависает вусмерть, потому как физически не успевает из обработчиков прерываний вылезать!
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
21.02.2017, 15:35
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Я пока не очень понимаю, как с помощью DMA можно дергать пинами и читать их состояние?
|
|
|
|
21.02.2017, 15:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Ногодрыг при помощи DMA я тоже делал (у меня на гитхабе можно увидеть). Это несложно.
А насчет 1-wire — так используется режим ШИМогенерации с одновременным захватом. В итоге одни регистры таймера работают на передачу, другие — на прием.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
21.02.2017, 16:10
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
А при помощи SPI не пробовали делать? Сигнал MSCK вовсе не использовать.
|
|
|
|
21.02.2017, 16:17
|
|
Гражданин KAZUS.RU
Регистрация: 16.02.2012
Сообщений: 441
Сказал спасибо: 89
Сказали Спасибо 735 раз(а) в 149 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
как с помощью DMA можно дергать пинами и читать их состояние?
|
задать регистр GPIO как адрес источника/приемника? но зачем ![Прикольно](images/smilies/icon_wink3.gif) ? главное не довести до абсурда, а то некоторые борцы с "абдуринщиками" без dma/таймеров уже и пином пошевелить не могут
Последний раз редактировалось zöner; 21.02.2017 в 16:21.
|
|
|
|
21.02.2017, 16:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от STM32F0
|
Ноги ростут от самого Далласа. Поиском в гугле "dallas 1-wire uart" и первая же строка
____https://www.maximintegrated.com/en/app-notes/index.mvp/id/214
Метод действителен для любых МК, в принципе. Просто для СТМ, за счёт его особенностей, всё получается немного проще.
|
Думаю само то,возьму на заметку+DMA забирать с USART.
__________________
Глаза боятся,а руки делают.
|
|
|
|
21.02.2017, 16:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от zöner
|
задать регистр GPIO как адрес источника/приемника? но зачем ?
|
Скажем, для общения с экранчиком нужна параллельная шина. И здесь, если нет физического интерфейса, очень хорошо эмуляция посредством DMA помогает. Я, собственно, так и дергал экран.
Очень удобно: задал адрес буфера, количество байт, и отправил DMA работать, а МК тем временем чем угодно может заниматься...
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
21.02.2017, 16:57
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от zöner
|
dma/таймеров уже и пином пошевелить не могут
|
А зачем? Если таймер и ДМА и сами прекрасно это делают? Это абдуринщики, сидят в болоте, подпитывают друг-друга сероводородом, пшикают газами на прохожих и постоянно размышляют о неблокирующем коде. Вот кикиморы! При этом отбирают у системы таймер, ДМА, прерывание, а ногой дрыгают вручную, ожидая флага от таймера!
|
|
|
|
21.02.2017, 17:01
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
А при помощи SPI не пробовали делать? Сигнал MSCK вовсе не использовать.
|
А смысл? По таймингам и УАРТ не всегда прокатывает. Да и СПИ лишними не бывают.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:35.
|
|