Первое знакомство. Первые грабли. Светофор на Attiny13A

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
vasyatky
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 25, 2016 18:01:31
Откуда: Ангарск

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение vasyatky »

[uquote="Demiurg",url="/forum/viewtopic.php?p=3470700#p3470700"][uquote="oleg110592",url="/forum/viewtopic.php?p=3470692#p3470692"]просто почитать:
http://we.easyelectronics.ru/AVR/avrasm ... ya-os.html[/uquote]
В диспетчере дихальта заложена мина замедленного действия.[/uquote]
Можете пояснить, что за мина?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение oleg110592 »

[uquote="Demiurg",url="/forum/viewtopic.php?p=3470700#p3470700"]Если у вас не хватает мозгов освоить конечные автоматы, ковыряйтесь сами в диспетчерах[/uquote]
Однофамилец?
http://we.easyelectronics.ru/demiurg197 ... vr-si.html
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Demiurg »

Да, это я. От диспетчера дихальта я отказался. Уже не помню, по каким причинам попытался модернизировать. Но после того я отказался окончательно. Потому что на тот момент начала назревать эта статья.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение ARV »

два вопроса:
1. почему в любой теме необходимо навязывать собственные предпочтения, уводя дискуссию в поле собственных критериев ценности?
2. почему такое неуемное желание добиться полной унификации подходов, выливающееся в следование каким-то избранным догмам (RTOS, диспетчеры, автоматы или что-то другое)?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение pyzhman »

Князьки.
Docendo discimus
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение oleg110592 »

Demiurg меня как и автора темы тоже интересует "Можете пояснить, что за мина?", в последней ссылке в комментариях есть упоминание о мине. Запустил в протеусе мигалку двух светодиодов на тини13 - мигает уже долго, а мина пока не взорвалась.
Изображение
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Demiurg »

[uquote="ARV",url="/forum/viewtopic.php?p=3470730#p3470730"]два вопроса:
1. почему в любой теме необходимо навязывать собственные предпочтения, уводя дискуссию в поле собственных критериев ценности?
2. почему такое неуемное желание добиться полной унификации подходов, выливающееся в следование каким-то избранным догмам (RTOS, диспетчеры, автоматы или что-то другое)?[/uquote]
Любая программа является автоматом и конечна. Поэтому она уже по определению сама по себе является конечным автоматом. RTOS и диспетчеры всего лишь управляют очередностью процессов, но никак не являются самой программой. И именно этот момент упускается программистами.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение ARV »

Demiurg писал(а):Любая программа является автоматом и конечна.
вы не ответили на 2 моих вопроса, хотя и процитировали их. если любая программа - конечный автомат, то, следовательно, никакого смысла в прививании всем подряд вашего метода не требуется - у всех и так получится по-вашему методу конечных автоматов :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Demiurg »

[uquote="ARV",url="/forum/viewtopic.php?p=3470753#p3470753"]
Demiurg писал(а):Любая программа является автоматом и конечна.
вы не ответили на 2 моих вопроса, хотя и процитировали их. если любая программа - конечный автомат, то, следовательно, никакого смысла в прививании всем подряд вашего метода не требуется - у всех и так получится по-вашему методу конечных автоматов :)[/uquote]
1 - Я в данный момент на работе и нет возможности писать развернутые ответы.
2 - Любая программа уже является автоматом и конечна. Это все понимают. Но не все осознают. В силу инертности, зашоренности мышления, банальной лени, а также психологической особенностью - идти по пути наименьшего сопротивления. И продолжают по старинке применять флаговые автоматы, биглупы, диспетчеры, RTOS. Разворачиваю ответ. Так как программа уже является автоматом и конечна, то применение автоматного программирования, конечных автоматов логично и очевидно. Главный признак автомата - состояние. Программный модуль - тоже программа. Автомат и конечен. И тоже подчиняется этому принципу.

Простейший автомат- флаг, семафор, у которого 2 состояния. Флаговый автомат - автомат с неявными состояниями, количество которых на самом деле равно степеням двойки, а не количеству флагов.
Последний раз редактировалось Demiurg Вт окт 02, 2018 11:49:44, всего редактировалось 1 раз.
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение AndTer »

Demiurg, автоматы, бесконечно... это всё демагогия и для поболтать. Вы про мины ответьте)
Глупый не задает вопросы. Глупый и так все знает.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Reflector »

[uquote="Demiurg",url="/forum/viewtopic.php?p=3470774#p3470774"]Любая программа уже является автоматом и конечна. Это все понимают. Но не все осознают. В силу инертности, зашоренности мышления, банальной лени, а также психологической особенностью - идти по пути наименьшего сопротивления. И продолжают по старинке применять флаговые автоматы, биглупы, диспетчеры, RTOS.[/uquote]
Что мешает использовать автоматы совместно с диспетчерами или простенькими псевдо-RTOS, как это сделано, например, в RIOS/SST/QP?

[uquote="AndTer",url="/forum/viewtopic.php?p=3470799#p3470799"]Вы про мины ответьте)[/uquote]
Там же по линку в комментах ответ есть... Если запланировать задачу для гильотины, то как ее потом отменить в случае непредвиденного сбоя? Оказалось проще перейти к чистым конечным автоматам, чем найти решение такой нетривиальной задачи :)
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Аlex »

Таким макаром можно в любой (абсолютно) программе найти недостающий тебе функционал и назвать это миной. Это не мина, это "там нет того, что мне необходимо".
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение pyzhman »

[uquote="Reflector",url="/forum/viewtopic.php?p=3470839#p3470839"]...автоматы...диспетчерами...RTOS...задачу для гильотины...нетривиальной...[/uquote]
ТСу надо только поморгать светодиодами.
Docendo discimus
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение AndTer »

Не, просто ТС ещё не понимает что для того чтобы помигать светодиодами надо стм32ф7, RTOS, вай-фай и фулхд дисплей. Вот и пытаются донести.
Или всё же просто флуд? Не, не может быть)
Глупый не задает вопросы. Глупый и так все знает.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Мурик »

AndTer писал(а):надо стм32ф7
F7 мало. Нужно не меньше H7, а то и вовсе Cortex-A с 1500 ядрами и 1500 ТБ ОЗУ. :))) :)
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение VladislavS »

Любой игрушечный светофор сейчас должен управляться минимум с мобильника.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение ARV »

VladislavS писал(а):Любой игрушечный светофор сейчас должен управляться минимум с мобильника
Мурик писал(а):7 мало. Нужно не меньше H7, а то и вовсе Cortex-A
AndTer писал(а):для того чтобы помигать светодиодами надо стм32ф7, RTOS, вай-фай и фулхд дисплей
снова прошу прощения за оффтоп, но вот всё это говорят те же люди, которые не скупились на негативные эпитеты в мой адрес, когда я говорил о целесообразности растрачивания ресурсов высокопроизводительных МК на любительские поделки
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Demiurg »

[uquote="Reflector",url="/forum/viewtopic.php?p=3470839#p3470839"]1 - Что мешает использовать автоматы совместно с диспетчерами или простенькими псевдо-RTOS, как это сделано, например, в RIOS/SST/QP?

2 - Оказалось проще перейти к чистым конечным автоматам, чем найти решение такой нетривиальной задачи :)[/uquote]
1 - Ничто и никто не мешает. Я же не говорил, что программа должна быть чистым конечным автоматом. Но также никто и ничто не мешает сделать всю программу одним главным конечным автоматом. Все подчиняется условиям ТЗ и целесообразности.

2 - Здесь вы не правы. Повторю: RTOS и диспетчеры предназначены для одной единственной цели. Управлять очередью процессов. Это не основная программа, а всего лишь инструмент. Основными программами являются программные модули, процессы, задачи, таски. И ваш подход - это латание дыр заплатками.

Про мину замедленного действия: в первом варианте диспетчера у DI HALT-а таймерная служба работала из прерывания. И задачами у него считались примерно такие действия:

"включить светодиод".
установить программный таймер на столько секунд.
закинуть в очередь задачу "выключить светодиод", которая и сработает через эти несколько секунд.

А наткнулся я на нее при следующих обстоятельствах. Я сделал автомат световых эффектов. Смена эффектов при нажатии кнопки. Когда работал один режим, я нажал на кнопку, чтобы сменить режим, этот режим установился, но, как выяснилось, в очереди задач остались болтаться задачи предыдущего режима. Во-первых, таймерная служба работала из прерываний, во-вторых, диспетчеру неизвестно, что режим сменился. Откуда ему знать, какие задачи удалять из очереди. Ведь это НЕ ЕГО НАЗНАЧЕНИЕ, а всего лишь исправно крутить карусельку-очередь заложенных процессов. Я переработал этот диспетчер, разобрал его на атомы, перелопатил. Вынес таймерную службу в основной цикл. Но проблема осталась. И тогда я понял, что нужно принципиально менять подход

Отсюда вытекает:
Подход 1:
Отдать управление RTOS, диспетчеру. И огребать последствия.

Подход 2:
Отдать управление процессу, задачей которого и является: выполнять заданный алгоритм. Когда дать команду исполнительному механизму, когда запретить работу исполнительного механизма.

На том форуме я неоднократно обсуждал этот вопрос. И только один, кто использует диспетчеры, сознался, что в его диспетчере крутятся программные модули, конечные автоматы. И я ему на это ответил так: а какой тогда вообще толк в диспетчере, если в твоем случае очередь крутит диспетчер и на переключение задач-процессов тратятся такты и время, а при моем подходе вся программа представляет из себя статичный цикл-список программных модулей. Подпрограммы, если на ассемблере, функции, если на си. И все затраченное время на переключение процессов- это вызов подпрограмм-функций и возврат в основной цикл.

Резюмирую:
Задача RTOS, диспетчеров - крутить очередь процессов. Но это всего лишь очередь процессов. И это всего лишь инструменты программиста, пассатижи, отвертка. Но никак не панацея всего и вся.

Главный алгоритм выполняют: вся программа в целом и программные модули. И чтобы это все правильно работало, управление должно быть в руках программиста, а не RTOS и диспетчеров.

Указанный мной подход универсален. Не привязан к какой-либо архитектуре. Применяя определенные правила и подходы, в разы сокращается время на создание проектов. Любой проект собирается как конструктор, из кубиков-программных модулей.

Если интересно дальше продолжать, то могу продолжить. Но учитывайте, что я занят, и не всегда могу ответить вовремя или вообще ответить. Закончу следующим. Это на словах вроде сложно, автоматное программирование, конечные автоматы, программные таймеры. Но на самом деле ничего сложного.

Для ТС:
Книги Вольфганг Трамперт "AVR-RISC микроконтроллеры фирмы ATMEL". Джон Мортон "Микроконтроллеры AVR Вводный курс".

Немного про конечные автоматы тут. В конце статьи ссылка на архив цикла статей Татарчевского. Основное я почерпнул оттуда.
Последний раз редактировалось Demiurg Вт окт 02, 2018 16:44:38, всего редактировалось 3 раза.
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение AndTer »

[uquote="ARV",url="/forum/viewtopic.php?p=3471020#p3471020"]которые не скупились на негативные эпитеты в мой адрес[/uquote]
И я прошу...
Но не надо впадать в крайности и подмазываться. Мы тут о другом, а не о тебе.
Одно дело покупать мк за 100500 денег и запускать операционку тупо для помигать, другое дело покупать дешевле и производительней, что облегчает и ускоряет разработку.
Снова логика потерялась...

Добавлено after 2 minutes 49 seconds:
[uquote="Demiurg",url="/forum/viewtopic.php?p=3471039#p3471039"]Если интересно дальше продолжать, то могу продолжить[/uquote]
В теме про светофор на аттини13 нет. Хотя лично мне и в других местах эта тема неинтересна.
Глупый не задает вопросы. Глупый и так все знает.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=3471020#p3471020"]снова прошу прощения за оффтоп[/uquote]И как же тебя, скотиняка, понять? То кричит что идей нет и всё изобретено, а как подкидываешь идею - в кусты? В век "гаджетомании" бэбик будет просто в восторге игрушкой с мобилы управлять. Ну это, конечно, если папка проц правильно выбрал - esp8285, к примеру.
Ответить

Вернуться в «AVR»