Моду
Пн 10 сентября 2018 г., 13:36
Привет, я использую это Прекрасный планировщик с большим успехом с моими клонами клена. Тем не менее, мне не хватает одной ключевой функции этого планировщика, который является режимом низкой мощности.
Когда у планировщика нет задач, которые можно бежать на Millis (), он спит MCU на 1 мс. Это отлично работает для AVR, но у меня проблемы с реализацией на стороне STM32Duino.
Я хотел бы что -то похожее на сторону AVR, сон, который открыт для всех прерываний, особенно прерывание обновлений Millis.
В соответствии с https: // github.com/stm32duino/stm32lowpower , Минимальный сон с часами RTC составляет 1000 мс, так что, очевидно, не очень хорошо.
Моя текущая попытка можно найти в моя вилка.
Любые указатели будут приветствовать.
Когда у планировщика нет задач, которые можно бежать на Millis (), он спит MCU на 1 мс. Это отлично работает для AVR, но у меня проблемы с реализацией на стороне STM32Duino.
Я хотел бы что -то похожее на сторону AVR, сон, который открыт для всех прерываний, особенно прерывание обновлений Millis.
В соответствии с https: // github.com/stm32duino/stm32lowpower , Минимальный сон с часами RTC составляет 1000 мс, так что, очевидно, не очень хорошо.
Моя текущая попытка можно найти в моя вилка.
Любые указатели будут приветствовать.
Стивестронг
Пн 10 сентября 2018 г. 14:05
Как насчет этого: https: // github.com/hocarm/stm32f103-tut ... _hal_pwr.в ?
Или эти темы:
https: // www.STM32duino.com/viewtopic.PHP?t = 2964
https: // www.STM32duino.com/viewtopic.PHP?t = 658
G ** gle - твой друг
Или эти темы:
https: // www.STM32duino.com/viewtopic.PHP?t = 2964
https: // www.STM32duino.com/viewtopic.PHP?t = 658
G ** gle - твой друг
Моду
Пн 10 сентября 2018 г. 15:31
https: // www.STM32duino.com/viewtopic.PHP?t = 658
Как вы думаете, где я получил большую часть информации и ссылок на репо?
AG123
Пн 10 сентября 2018 г., 17:07
Попробуйте это
long received = 0;
const unsigned long buffer_size = 128;
uint8_t buffer[buffer_size];
void setup() {
Serial1.begin(9600);
}
[...]
void loop() {
[...]
while(Serial1.available()){
buffer[received++ % buffer_size] = Serial1.read();
}
}
Хейсан
Пн 10 сентября 2018 г. 18:01
Это выглядит очень интересно... Интересно, каким эффектом будет добавить это в вашу программу:
void loop() {
[...]
if(Serial1.available()){
buffer[received++ % buffer_size] = Serial1.read();
}
}
AG123
Вторник 11 сентября 2018 г. 12:49
Обратите внимание, что на STM32 есть только один поток выполнения, следовательно,
display.print("Received: ");
display.print(received);
display.println(" byte(s)");
for (int xx=0; xx
Mrburnette
Вторник 11 сентября 2018 г. 1:24
Моду...
Я предполагаю, что вы читаете AN2629.
Зачем вам нужен низкопроводный, агрегатный питание от аккумуляторов? Почему задача запланировано? Я знаком с Freertos и часто использую его под Arduino, но с ESP32.
Вы, вероятно, нашли эту старую нить о низкой мощности, https: // www.STM32duino.com/viewtopic.PHP?t = 298 Но у этого не было сложности планировщика задач.
Лично вы можете захотеть изучить Freertos на STM32: https: // www.Google.com/search?Q = Freerto ... 3+низкая сила
Я предполагаю, что вы читаете AN2629.
Зачем вам нужен низкопроводный, агрегатный питание от аккумуляторов? Почему задача запланировано? Я знаком с Freertos и часто использую его под Arduino, но с ESP32.
Вы, вероятно, нашли эту старую нить о низкой мощности, https: // www.STM32duino.com/viewtopic.PHP?t = 298 Но у этого не было сложности планировщика задач.
Лично вы можете захотеть изучить Freertos на STM32: https: // www.Google.com/search?Q = Freerto ... 3+низкая сила
AG123
Вторник 11 сентября 2018 г. 7:29 утра
Привет, Рэй,
Я обнаружил, что Freertos сложно использовать в MM/BP, что частично из -за наличия только 20 тыс. Памяти, память фрагментируется в схеме Freertos, а каждая задача выделяла свой собственный стек и т. Д., Которые дополнительно фрагментируют память.
Я использую петлю события
Я обнаружил, что Freertos сложно использовать в MM/BP, что частично из -за наличия только 20 тыс. Памяти, память фрагментируется в схеме Freertos, а каждая задача выделяла свой собственный стек и т. Д., Которые дополнительно фрагментируют память.
Я использую петлю события
[b]And most importantly, they will be able to learn a lot more in uProcessor programming than using Arduino. [/b]However, this can an double-edge sword, since a huge amount of time could be sucked into this. Another choice is Arduino Due, it might not be able to run all standard libraries out of the box either, as I understand. So this will be a really tough decision, and this was the reason why I posted my question.
Моду
Вторник 11 сентября 2018 г. 8:59 утра
Спасибо всем за комментарии, я расскажу, как только получу мои инструменты снова и сделаю несколько тестов. И, видимо, было какое -то чтение, которое я пропустил, так что сначала я на нем.
[Mrburnette - Вторник 11 сентября 2018 г. 1:24 утра] - Зачем вам нужен низкий энергопотребление, блок питания на батареях?Да, почти все мои проекты работают за аккумулятор. Кроме того, я стараюсь сделать низкую мощность в качестве принципа, вы не поймете меня на задержку с циклами задержки. Может быть, это потому, что я потратил годы, делая устройства BLE в течение нескольких месяцев на батареи монетной ячейки: P
[Mrburnette - Вторник 11 сентября 2018 г. 1:24 утра] - почему задача? Я знаком с Freertos и часто использую его под Arduino, но с ESP32.Мне очень удобно с ООП -ориентированными планировщиками, так что это мой первый выбор: он позволяет мне легко создавать сложную логику времени. Что касается RTOS, я некоторое время следил за этим тропой, но пришел к выводу, что накладные расходы, как с точки зрения памяти, так и сложность проекта, не стоили того, что для единственного (очевидного) выгоды от более точного времени, когда планировщик прозрачный Функция низкой/мощности. Я также абстрагировал интерфейс задачи/планировщика, поэтому я могу перевернуться в RTO, если захочу, но пока я люблю эти маленькие планировщики. Кроме того, большинство RTOSS созданы для C и статических функций, поэтому у меня были Мой выстрел в Слои Ооп на вершине Freertos на STM32DUINO.
Mrburnette
Ср 12 сентября 2018 г. 12:44
Вещи более сложны, чем простой цикл выше, но эта схема работает очень хорошо, стек разнадосят после того, как каждый класс обработки событий обрабатывает событие,
Не могу спорить с рабочим кодом.
Что касается RTOS, я некоторое время следил за этим тропой, но пришел к выводу, что накладные расходы, как с точки зрения памяти, так и сложность проекта, не стоили того, что для единственного (очевидного) выгоды от более точного времени, когда планировщик прозрачный Функция низкой/мощности. Ты профессионал, мне не нужно пытаться убедить тебя в чем -либо. Иди и повеселиться.
Луча
Что касается RTOS, я некоторое время следил за этим тропой, но пришел к выводу, что накладные расходы, как с точки зрения памяти, так и сложность проекта, не стоили того, что для единственного (очевидного) выгоды от более точного времени, когда планировщик прозрачный Функция низкой/мощности. Ты профессионал, мне не нужно пытаться убедить тебя в чем -либо. Иди и повеселиться.
Луча
Моду
Ср 12 сентября 2018 г. 10:07 утра
[Mrburnette - Ср 12 сентября 2018 г. 12:44] - Ты профессионал, мне не нужно пытаться убедить тебя в чем -либо. Иди и повеселиться.Боже мой, я не профессионал, по крайней мере, когда дело доходит до встроенного. Я воспринял ваше предложение серьезно, потому что я здесь, чтобы учиться, поэтому я оправдывал свой выбор: если вы видите какую -либо ошибку в моей логике или другом угле, который я не вижу, пожалуйста, скажите
Что касается моего заключения, кажется, я был не единственным.
[AG123 - Вторник 11 сентября 2018 г., 7:29 утра] - Используя это, я думаю, что можно заставить вещи работать в MM/BP, где в противном случае у вас не хватает памятиДа, это именно то поведение, которое я повторяю, хотя и в библиотеке планировщика.
Mrburnette
Ср 12 сентября 2018 г. 12:08
Modu:
Я получил образование в качестве EE и работал в корпоративности до ухода в отставку в 2010 году. Мой опыт кодирования был полностью мини-компьютерами, пока я не купил P.Эн.Т. а позже Apple II и начал писать в ассемблере. Позже я написал, используя IBM PC, и в то время, даже в корпоративном, 1M RAM был обычным и, возможно, расширенной картой памяти, если вам повезло. Учимся быть фругильным с оперативной памятью. И эта чертовла архитектура Intel в P.я.Т.А. В те дни.
В наши дни компилятор и линкера для рук просто замечательные ... C ++ на AVR с 2K (или менее) SRAM.
Когда я спросил «почему» ваше объяснение было удовлетворительным - потому что вы можете, и вам удобно в собственной взломанной способности. Вы находитесь в элитной группе, поэтому мне не было ничего, кроме как пожелать вам удовольствия. Я, конечно, не предлагаю такого ответа на большинство пользователей форума, как для масс, лучше всего ходить в середине пути, а не выйти из пути и исследовать в кустах.
Луча
Я получил образование в качестве EE и работал в корпоративности до ухода в отставку в 2010 году. Мой опыт кодирования был полностью мини-компьютерами, пока я не купил P.Эн.Т. а позже Apple II и начал писать в ассемблере. Позже я написал, используя IBM PC, и в то время, даже в корпоративном, 1M RAM был обычным и, возможно, расширенной картой памяти, если вам повезло. Учимся быть фругильным с оперативной памятью. И эта чертовла архитектура Intel в P.я.Т.А. В те дни.
В наши дни компилятор и линкера для рук просто замечательные ... C ++ на AVR с 2K (или менее) SRAM.
Когда я спросил «почему» ваше объяснение было удовлетворительным - потому что вы можете, и вам удобно в собственной взломанной способности. Вы находитесь в элитной группе, поэтому мне не было ничего, кроме как пожелать вам удовольствия. Я, конечно, не предлагаю такого ответа на большинство пользователей форума, как для масс, лучше всего ходить в середине пути, а не выйти из пути и исследовать в кустах.
Луча
Хейсан
Ср 12 сентября 2018 12:32
[Mrburnette - Ср. 12 сентября 2018 г. 12:08 вечера] - человек учится быть фругиле с Рам. И эта чертовла архитектура Intel в P.я.Т.А. В те дни.Возвращение некоторых вспоминаний о том, как играть в «шахматы» на Sinclair ZX80... Весь приложение + хранилище + буфер кадров текстового режима в 1 КБ ОЗУ (хотя я уверен, что были некоторые вызовы для подпрограммы в 4 КБ ПЗУ). Я вкладываю «шахматы» в цитаты, так как противник ИИ был действительно не очень хорошим .
Современные MCU заставляют первые домашние компьютеры действительно похожими на динозавров, которых они...
Моду
Чт 13 сентября 2018 г. 8:47 утра
Луча,
Спасибо за добрые слова.
В наши дни компилятор и линкера для рук просто замечательные ... C ++ на AVR с 2K (или менее) SRAM. Не мог согласиться больше. Это причина, по которой я лично влюбился в встроенное программирование.
Спасибо за добрые слова.
В наши дни компилятор и линкера для рук просто замечательные ... C ++ на AVR с 2K (или менее) SRAM. Не мог согласиться больше. Это причина, по которой я лично влюбился в встроенное программирование.