Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сложные программы
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9
AlexandrY
Цитата(zltigo @ Jan 10 2017, 10:09) *
1.Разумеется не один и тот же.
2.Про "напрямую" это Вы сами придумали и неведомо что под этим подразумеваете.


Ну-ка, ну-ка... Флагами у вас автоматы информацию не передают, переменную состояния друг друга не трогают (для тех, кто замучен моделью OSI - не записывают) .
Так каким же святым духом они взаимодействуют?
zltigo
Цитата(AlexandrY @ Jan 10 2017, 11:23) *
Ну-ка, ну-ка... Флагами у вас автоматы информацию не передают, переменную состояния друг друга не трогают (для тех, кто замучен моделью OSI - не записывают) .
Так каким же святым духом они взаимодействуют?

Не передергивайте, я протестовал против придуманного Вами понятия " напрямую меняет" неведомо что для Вас означающего. Посему уже третий раз повторяю:
Цитата
они взаимодействуют через изменения СОСТОЯНИЙ друг друга

Собственно процедура перехода из одного состояния в другое есть прерогатива автомата, который свое состояние меняет, а не того автомата, который это изменение инициирует.
При этом сама процедура изменения состояния хорошо выносится из общего контекста конечного автомата в отдельную процедуру изменения состояний, что тоже упрощает и читабельность и написание, и понимание и отладку, работы автомата. Другой автомат просто вызывает эту процедуру о которой собственно не знает ничего, кроме того, что она в результате своей работы и работы чужого конечного автомата установит его в затребованное состояние.
Цитата
(для тех, кто замучен моделью OSI

Для тех, для кого в мире нет ничего, кроме нескольких моторчиков, ссылка на один (первый попавшийся) из нижних уровней - LAPВ :https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-X.25-199610-I!!PDF-E&type=items
В стандарт уже описан с терминах конечного автомата.
AlexandrY
Цитата(zltigo @ Jan 10 2017, 12:06) *
ссылка на один (первый попавшийся) из нижних уровней - LAPВ :https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-X.25-199610-I!!PDF-E&type=items
В стандарт уже описан с терминах конечного автомата.

Интересно что вы курите.
В этом стандарте нет ни одного! упоминания таких терминов как finite-state machine (FSM) или finite-state automaton (FSA), finite automaton, или просто state machine
Цитата(zltigo @ Jan 10 2017, 12:06) *
При этом сама процедура изменения состояния хорошо выносится из общего контекста конечного автомата в отдельную процедуру изменения состояний, что тоже упрощает и читабельность и написание, и понимание и отладку, работы автомата. Другой автомат просто вызывает эту процедуру о которой собственно не знает ничего, кроме того, что она в результате своей работы и работы чужого конечного автомата установит его в затребованное состояние.

Ну и...
А дальше в той процедурке взводите флаг. Пришли к тому с чего начали.
А если ваша процедурка прямо пишет в переменную состояния то я вас поздравляю, вы разорвали свою машину на куски и скоро это же произойдет с вашим мозгом.
zltigo
Цитата(AlexandrY @ Jan 10 2017, 13:32) *
Интересно что вы курите.
В этом стандарте нет ни одного! упоминания таких терминов как finite-state machine (FSM) или finite-state automaton (FSA), finite automaton, или просто state machine

Какой ужас! А то, что в нем разрисованы "state diagrams" и соответственно состояния конечного автомата переходы между состояниями, это уже не доступно пониманию чукчи-писателя sad.gif.
Цитата
А дальше в той процедурке взводите флаг. Пришли к тому с чего начали.

Это Вы у себя в голове, возможно чего-то взводите.
Цитата
А если ваша процедурка прямо пишет в переменную состояния то я вас поздравляю, вы разорвали свою машину на куски и

Себя поздравьте с уже третьей безуспешной попыткой приписать свои глупости c какой то "прямой записью" мне.
Цитата
скоро это же произойдет с вашим мозгом.

Я за свои 55 лет написал и сопровождаю, достаточно много конечных автоматов, причем и весьма сложных (не по тому, что они дурно написано, а по тому, что объекты сложные), а не для запустить остановить пару моторчиков. Так что методика программирования конечных автоматов у меня обработана. Мозг на месте. То, что Вам с бухты-барахты удалось даже для моторчика родить уродливый конечный автомат - верю. Конечные автоматы должны быть изначально спроектированы тщательно, после чего, как не удивительно sm.gif, достаточно легко пишутся и очень четко работают. Нежели же попытаться наскоком чего то там начать писать и латать рассматривая результат не работы под отладчиком, то лепя заплатки, ничего хорошего не получится.

ar__systems
Цитата(Буратино @ Jan 4 2017, 01:47) *
Занимаюсь созданием приборов с микроконтроллерным управлением. Ничего эдакого, как говорит ЛИ "автоматизация курятников". Из последнего у меня получилось 32К на Си. Освоил и пользуюсь методами из теории конечных автоматов. Сообщения, таймеры много канальные программные.

Вау, 32К. Шутка ли! Это ж целая тыща строк! Сложно! </sarcasm>
Серьезно, однако, если вам это сложно надо учиться. Это не то что не сложно, это просто ни о чем. 1000 строк это на неделю работы.
Цитата(Буратино @ Jan 4 2017, 14:11) *
В этой теме речь не идет о пром контроллерах, армах или скриптовых движках. Это наверное и важно и интересно, но точно не мне и не сейчас.
Из конструктива в теме отмечу ссылки на ооп и ос. На сколько мне известно, то это огромные темы с массой интересного. Однако напоминаю, что у меня маленькие процы и в принципе простые задачи сложно взаимодействующие друг с другом.
Что из самого ценного взять и трансформировать в мир маленьких камней из ооп и ос? обьекты и задачи? семафоры? есть ли реализации на которые можно смотреть и наследовать?

Не нужно вам на 8ми битнике ни OOП ни С++. То что вы описали, это примитивные программы с простейшей логикой. Если вы не можете это эффективно на С выразить, промочки вам будут только усложнять жизнь. С должно быть вполне достаточно. Универсальных советов тут быть не может. Может с опытом придет )) Может надо поработать с кем-то и поучиться

Почитал ваши посты дальше. В принципе, наверное, вы на правильном пути, раз уже сами пришли к тем же выводам.
Я бы посоветовал вам почитать "Clean code <...>" by Martin. Ничего такого, но много правильных советов по поводу того, как делать программу более понятной и читаемой. В остальном вам поможет только "опыт, сын ошибок трудных"
Буратино
Цитата(ar__systems @ Jan 10 2017, 16:51) *
Не нужно вам на 8ми битнике ни OOП ни С++. То что вы описали, это примитивные программы с простейшей логикой. Если вы не можете это эффективно на С выразить, промочки вам будут только усложнять жизнь. С должно быть вполне достаточно. Универсальных советов тут быть не может. Может с опытом придет )) Может надо поработать с кем-то и поучиться

Я нахожусь в соответствующем разделе и задаю вопросы не для того чтоб услышать что мол мало знаю! Это и так ясно, по-крайней мере для меня. Но справедливости ради тысяча строк это в моем проекте один "с" файл из 30ти! И это если не считать USB драйвера (LUFA библиотека. Там наверное как минимум дясять-15 тыс строк).
Таким образом, Вы "дыманули" ориентировочно на два порядка. Мне было бы стыдно за такие оценки и отношение к вопросу.
И снова оговорюсь: речь идет о сложности для меня, для вас это может быть и легко, но судя по всему с некоторыми исключениями sm.gif
ar__systems
Цитата(Буратино @ Jan 10 2017, 09:12) *
Таким образом вы дыманули


Гы, ну так я же исхожу из того, что вы написали. Написали бы 30 тыщ чтобы не надо было додумывать. К слову, библиотеку-то вы не считайте. Она же для вас только black box.
Буратино
Цитата(ar__systems @ Jan 10 2017, 17:29) *
Гы, ну так я же исхожу из того, что вы написали. Написали бы 30 тыщ чтобы не надо было додумывать. К слову, библиотеку-то вы не считайте. Она же для вас только black box.


Вот я бы на Вашем месте извинился. Так принято поступать если ошибся. Посмотрим на что Вы годны rolleyes.gif
Эдди
Дык, комментарии и пустые строки тоже не считаются. А то можно в подобной фигне насчитать
Код
cat *.c|wc -l
4220



P.S. А 1000 строк — это все-таки не неделя. Зависит от сложности. Я вот сегодня за 4 часа написал сотню строк. Теперь уже второй час сижу, не понимаю, чего оно сегфолтится (простая комповая утилитка с кучей malloc/free).
ar__systems
Цитата(Эдди @ Jan 10 2017, 09:34) *
Дык, комментарии и пустые строки тоже не считаются. А то можно в подобной фигне насчитать
Код
cat *.c|wc -l
4220



P.S. А 1000 строк — это все-таки не неделя. Зависит от сложности. Я вот сегодня за 4 часа написал сотню строк. Теперь уже второй час сижу, не понимаю, чего оно сегфолтится (простая комповая утилитка с кучей malloc/free).

Комменты как раз считаются. Это важная часть программы.
Раз на раз не приходится, и да, зависит от сложности. У меня за последние две недели вышло по тыще за неделю, и это я еще и другой работой занимался ).

Буратино, у меня ошибки не было.

Anyway,
из моих личных советов я советую разбивать программу на функции, до такого размера, чтобы было за 30 секунд понятен весь ее код. И насколько возможно переписывать код с целью уменьшения глубины вложенности управляющих блоков.

Пример: сравните варианты:

Код
void ProcessOnTime() {
static int TimeCount = 0;

    TimeCount++;
    if ( TimeCount == 10 ) {
        TimeCount = 0;
        // Do some stuff here
    };
}

// vs.

void ProcessOnTime() {
static int TimeCount = 0;

    TimeCount++;
    if ( TimeCount < 10 )
        return;  

    TimeCount = 0;
    // Do some stuff here
}


Если следить за этим, такое преобразование очень часто возможно.
Код получается более линейным и понятным
Буратино
Сори, а зачем int TimeCountУ ? А зачем его определять ноликом? А зачем скобки в первом случае!? И мне кажется можно и нужно проще записать все это. Или я ошибаюсь!?
ar__systems
Цитата(Буратино @ Jan 10 2017, 10:35) *
Сори, а зачем int TimeCountУ ? А зачем его определять ноликом? А зачем скобки в первом случае!? И мне кажется можно и нужно проще записать все это. Или я ошибаюсь!?

На месте do some stuff подразумевается код, который исполняется раз в 10 вызовов. В первом случае скобки нужны чтобы этот код был внутри if.

Перепишите проще, даже интересно.
Буратино
Цитата(ar__systems @ Jan 10 2017, 18:46) *
В первом случае скобки нужны чтобы этот код был внутри if.


А зачем тогда точка с запятой нужна? Я плохо ориентируюсь в таких моментах.
zltigo
Цитата(ar__systems @ Jan 10 2017, 17:46) *
Перепишите проще, даже интересно.

Код
    if( chk_timer_restart( &ledx_timer ) )
    {
// Do some stuff here
    }

Это я к тому, что разнообразные функции таймеров:
Код
void set_timer( sys_timer_s *tim, ulong value );
void stp_timer( sys_timer_s *tim );
void rst_timer( sys_timer_s *tim );
bint chk_timer( sys_timer_s *tim );
bint chk_timer_stop( sys_timer_s *tim );
bint chk_timer_restart( sys_timer_s *tim );
void chg_timer( sys_timer_s *tim, ulong value );

#define set_timer_ms( t, v )    set_timer( (t), ((v)*(    (SYS_FREQUENCY)/1000UL)) )
#define set_timer_ts( t, v )    set_timer( (t), ((v)*((2)*(SYS_FREQUENCY)/1000UL)) )

это тоже общая унифицированная часть и рожать на каждое использование таймера чего то заново неразумно sad.gif
dm37
Цитата
А зачем тогда точка с запятой нужна? Я плохо ориентируюсь в таких моментах.

Подразумевается, что доходишь до команды return и если условие выполняется, то дальше код можно не смотреть
ar__systems
Цитата(zltigo @ Jan 10 2017, 11:16) *
это тоже общая унифицированная часть и рожать на каждое использование таймера чего то заново неразумно sad.gif


Постарайтесь шире смотреть на вещи. Во первых, пример был не о таймере. Во вторых, представьте себе, таймерной библиотеки может не быть.
zltigo
Цитата(ar__systems @ Jan 10 2017, 18:33) *
Постарайтесь шире смотреть на вещи. Во первых, пример был не о таймере. Во вторых, представьте себе, таймерной библиотеки может не быть.

Понял. Смотрю шире - пример был ни о чем. Вопросов нет.
Первый вариант, кстати, лучше, для тех, кто пользуется средствами редактора для навигации по исходнику, а не разыскивает вылупив глаза. Имея скобки я могу перейти к парной скобке, выделить весь блок, или наоборот свернуть его.
ar__systems
Цитата(zltigo @ Jan 10 2017, 11:35) *
Первый вариант, кстати, лучше, для тех, кто пользуется средствами редактора для навигации по исходнику, а не разыскивает вылупив глаза. Имея скобки я могу перейти к парной скобке, выделить весь блок, или наоборот свернуть его.

Ну вот это уже по сути, хотя странно, конечно. Мне так однозначно второй предпочтительнее.
Dog Pawlowa
Цитата(ar__systems @ Jan 10 2017, 20:04) *
Мне так однозначно второй предпочтительнее.

Не факт.
Есть же стандартные рекомендации и в той же MISRA - должен быть один выход из функции.
Но тема ушла в оформление, это важно для сложных программ, но не критично.
Адепты RTOS с адептами автоматов замирились, что ли?
Эдди
Цитата(Буратино @ Jan 10 2017, 18:57) *
А зачем тогда точка с запятой нужна? Я плохо ориентируюсь в таких моментах.

И этот человек что-то будет говорить о "сложных программах"?
Ну явно тролль же!
ar__systems
Цитата(Dog Pawlowa @ Jan 10 2017, 12:09) *
Не факт.
Есть же стандартные рекомендации и в той же MISRA - должен быть один выход из функции.


Да? странно, в чем логика такого требования?

ок почитал. ИМХО я выберу множественные возвраты + тривиальная логика чем запутанная логика и единственный возрват
Dog Pawlowa
Цитата(Эдди @ Jan 10 2017, 20:19) *
Ну явно тролль же!

Пока рано так говорить.
Если в ИАРе разрешить все предупреждения и ремарки, он ругается на точку с запятой после закрывающей функцию скобки.
Но подозрения есть sm.gif

Цитата(ar__systems @ Jan 10 2017, 20:20) *
ИМХО я выберу множественные возвраты

Все зависит от всего.
Одно дело после входа выйти, или парсер выходит с результатом разбора, а другое - второй выход где-то в середине функции.
zltigo
Цитата(ar__systems @ Jan 10 2017, 19:20) *
ИМХО я выберу множественные возвраты + тривиальная логика чем запутанная логика и единственный возрват

Ваш пример не служит примером запутанной логики которую рекламируемый Вами прием как то распутал. Ну а вообще, множественные возвраты из функции не есть криминал. Можно пользоваться, если НУЖНО. НЕ НУЖНО пользоваться всегда. Я пользуюсь очень редко, но не по причине какого либо неприятия и фобий. Просто как то не возникает ни малейшей необходимости.
Буратино
Я здесь не для того чтоб учить кого-то писать ПО. Наоборот - спрашиваю, как это делать. Но вы меня простите, если меня учат статик инициализировать нолями, или число 10 в интах размещать, то левые точка с запятой - мелочи. Я смысл того о чем писал ar__systems понял ,но в контексте того что меня тревожит это такая ерунда ,что слов нет. Уж что что ,а с тем как один раз из десяти что то там вызывать я справлюсь. Такого рода вопросы меня не тревожат.
ar__systems
Цитата(zltigo @ Jan 10 2017, 12:56) *
Ваш пример не служит примером запутанной логики которую

Разумеется нет. Пример распутывает один уровень вложения, их могло быть гораздо больше.

Буратино, пример был не о статик переменной и не о запятой. wink.gif
Dog Pawlowa
Цитата(Буратино @ Jan 10 2017, 20:57) *
Наоборот - спрашиваю, как это делать.

Ну так спрашивайте же! ЧТО делать? Какие у Вас проблемы?
Тонете в своих амбициях.
Буратино
Цитата(Dog Pawlowa @ Jan 10 2017, 21:29) *
Ну так спрашивайте же! ЧТО делать? Какие у Вас проблемы?
Тонете в своих амбициях.


Так я же уже выбрал стратегию для следующего проекта! И кстати говоря писал о ней выше. Все четко по пунктам. Сейчас просто отстаиваю честь и достоинство по пояс деревянных. Также, прислушиваюсь к рациональному и ценному в перепалках.

ar__systems, wink.gif
Dog Pawlowa
Цитата(Буратино @ Jan 10 2017, 21:33) *
Все четко по пунктам.

Даже не знаю.
Тут есть четкость, но нет пунктов:
Цитата(Буратино @ Jan 8 2017, 18:32) *
детский сад.

Тут есть пункты, но я лично не понял, о чем Вы пишете:
Цитата(Буратино @ Jan 8 2017, 11:27) *
4. Подсистема сообщений. Это когда я могу отправить сообщение от одной части ПО к другой. Сообщение может быть "персональное" либо широковещательное.
5. Объекты. Эти программные конструкции которые поддерживают все вышеперечисленное и помогают перейти на несколько более высокий уровень абстракции. Объекты взаимодействуют с окружением используя методы и свойства.

Какие сообщения, какие объекты ...

Но неважно, раз Вы поняли, то тему можно и закрывать.
Буратино
Ничего не понял. Вы что думаете ,что я морочу голову? Мне есть кому ее морочить, поверьтеsm.gif
Вот здесь то чем я пользуюсь. Там же и о сообщениях.

Тему закрывать не стоит. Можно просто в нее не заходить если вот прям все ясно и понятно. Согласитесь, это логично!
AlexandrY
Цитата(Буратино @ Jan 10 2017, 20:50) *
Вот здесь то чем я пользуюсь. Там же и о сообщениях.

Дурь, не тратьте время.
Я сейчас с удовольствие поисследовал SDK под чипы Mediatek
Если хотите развиваться в embedded вам неминуемо надо переходить на RTOS и на ARM Cortex-M

Скомпилировал простенький проект примитивнейшего IoT модуля. Что-то там с BLE датчиков переслать в облака по Wi-Fi
Получил полмегабайта бинарник.
Исходники включают столько разных программных модулей, что 55-и летним ветеранам OSI челюсть отвалится.
Там их OSI всего пару процентов составляет.

Никакие парадигмы программирования типа автоматного, объектного и проч. вы там эффективно не примените.
Сказано RTOS на C и нет другого выбора.
Эдди
Нет ничего такого, что нельзя было бы реализовать КА.
РТОСЬ имела бы смысл, будь мелкоконтроллер многоядерным. А на одном ядре — нафиг оно нужно?
AlexandrY
Цитата(Эдди @ Jan 10 2017, 23:01) *
Нет ничего такого, что нельзя было бы реализовать КА.

В мыслях можно перемещаться быстрее скорости света и клонировать сознание, а в реале ... laughing.gif

Есть задачи непосильные даже для машины Тьюринга, пора бы уже знать.
Dog Pawlowa
Цитата(Эдди @ Jan 11 2017, 00:01) *
Нет ничего такого, что нельзя было бы реализовать КА.

ПО смартфона можно написать на КА?
Только теоретически.
zltigo
Цитата(Эдди @ Jan 10 2017, 23:01) *
Нет ничего такого, что нельзя было бы реализовать КА.

Может и можно при неограниченном ресурсе контроллера и времени программиста. Вопрос только нафига?

Эдди
Цитата(Dog Pawlowa @ Jan 11 2017, 09:40) *
ПО смартфона можно написать на КА?

Нет, конечно. Смартфон — не телефон, а компьютер. Не надо тут...
Мы говорим об embedded, а не чуши какой-то на основе недооперационок!

Цитата(AlexandrY @ Jan 11 2017, 00:26) *

Их мы тоже не рассматриваем, т.к. они в большинстве своей — тупая абстракция.
Ну и опять-таки, напомню, что мы о микроконтроллерах говорим, а не о компьютерах.

Если бы используемые мной МК умели fpu, я бы, понятное дело, в случае необходимости перешел бы от fixed к floating point. Аналогично и с операционными системами: был бы там mmu, я бы туда линукс загнал и не парился.
Ну, а коли mmu нет, так зачем МК насиловать ртосями?
zltigo
Цитата(AlexandrY @ Jan 10 2017, 22:51) *
Исходники включают столько разных программных модулей, что 55-и летним ветеранам OSI челюсть отвалится.

Только неведомо зачем "включают".
А челюсть у "ветерана" отваливается часто, но по другой причине. Последние годы "ветеран" работает в интересной области, где за последние годы набежало много народу с, как я стал называть - "IT мышленим". Соответственно рождают монстров. Вот сейчас одна российская компания родила импортозамещающий "продукт". Продукт весит 36 килограмм и потребляет 3,5W. Внутри все, как понятно IT-шикам - Wi-Fi, SHDSL... "Программых модулей", там соответственно тоже дофига и еще чуть чуть. Все это добро предполагается устанавливать в количестве 540 штук на объект. Для питания этого "беспроводного" хозяйства ничтожно сумятиша предполагают растянуть 50 километров 220V сети в бронированном кабеле.
У "ветерана" точка обеспечивающая аналогичный функционал потребляет 0.15W и весит 500 грамм.
Так что дурное дело оно нехитрое - при необходимости и "ветеран" соберет "программных модулей" и всего прочего по самое немогу. Опыт разработки и больших программных проектов со многими исполнителями разбросанными по странам и континентам тоже немалый.
Dog Pawlowa
Цитата(Эдди @ Jan 11 2017, 11:38) *
Смартфон — не телефон, а компьютер. Не надо тут...
Мы говорим об embedded, а не чуши какой-то на основе недооперационок!

Вы предсказуемы, я ждал этого возражения wink.gif
Где грань ?!
Чем по большому счету отличается аппарат с GUI и SD-картой от телефона?
Если нужно одновременно обновлять информацию на экране и писать большие файлы на карту, будете автоматы клёпать?
Буратино
Цитата(zltigo @ Jan 11 2017, 12:18) *
ничтоже сумятишись

поправлю просто для гармонии слова и дела так сказать. кстати ,я на самом деле с ув. отношусь к Вам. особенно радует конечно сликедик и монотайп. Спс.
Эдди
Цитата(Dog Pawlowa @ Jan 11 2017, 12:20) *
Где грань ?!

Как только в МК появляется fpu, mmu и скоростной интерфейс работы с периферией (начиная с оперативной памяти и SSD), он превращается в процессор ☺
И вот туда уже вполне логично засунуть операционную систему, потому как ресурсы позволяют + ресурсы уже настолько сложны, что конечными автоматами там замучаешься рулить.
Цитата
Чем по большому счету отличается аппарат с GUI и SD-картой от телефона?

Батенька, опять вы путаете телефон и компутер! Смартфон — это недокомпутер, но никак не телефон. А простой мобильник можно и на STM8 собрать, там ресурсов много не нужно!
Цитата
Если нужно одновременно обновлять информацию на экране и писать большие файлы на карту, будете автоматы клёпать?

Конечно. В не сильно далеком будущем хочу реализовать работу с флеш картой (правда, для этого сначала нужно нормальную библиотеку для работы с EXT2/EXT3 найти, потому как VFAT убог с самого своего рождения). Естественно, на кой черт для такой элементарщины ртось?
А экранчик обслуживается почти аппаратно при помощи DMA.
И уж в параллельной работе записи на карту и отображении информации на экране никаких проблем нет. Работают же у меня параллельно запросы на DS18B20, внутренний АЦП и внешний АЦП, когда еще и всякие USB/RS-232 туда-сюда что-то шлют!
Просто в бесконечном цикле main() поочередно вызываем все обработчики событий. Внутри них сохраняются состояния (скажем, обработчик DS18 сначала посылает стартовый импульс и переходит в состояние 1, потом, как только датчики откликнулись, шлет команду чтения и переходит в состояние 2, в этом состоянии опрашивает готовность, далее переходит в состояние 3 и начинает поочередно — в каждом очередном состоянии — опрашивать датчики).
zltigo
Цитата(Эдди @ Jan 11 2017, 13:37) *
Батенька, опять вы путаете телефон и компутер! Смартфон — это недокомпутер, но никак не телефон.

Это обычнный мощный контролер, который может выполнять и функционально аналогичные компьютерным приложения. Ну в качестве одного из аппаратных прибамбасов там есть "телефон", "фотоаппарат"...
Цитата
А простой мобильник можно и на STM8 собрать, там ресурсов много не нужно!

Феерический бред человека даже приблизительно не представляющего сложность беспроводных телекомуникационных протоколов.
На STM8 Вы не соберете даже полнофункциональный аналоговый проводной телефон.
Цитата
Просто в бесконечном цикле main() поочередно вызываем все обработчики событий.

И это счастье работает, и работает действительно хорошо, понятно и надежно, но до тех пор, пока ресурсов используемого Вами контролера с избытком. Как только возникает ситуация, что нефиг там картинки рисовать - давай самолетом заниматься, то все становится не радужно. Конечно, тут "на помощь" приходят длинные обработчики прерываний. потом вложенные прерывания... Все это давно известно. Разница только в том, что некоторые разработчики этот путь уже прошли и владеют разными технологиями, а некоторые все еще там (в суперцикле с прерываниями) остались топтаться.
segment
А вы не хотите на какой-нибудь конкретной задаче свои методы сравнить?
zltigo
Цитата(Сега @ Jan 11 2017, 14:15) *
А вы не хотите на какой-нибудь конкретной задаче свои методы сравнить?

Если это об операционной системе или суперцикле, то я не хочу. Уже давным давно для себя все сравнил и решил когда что использовать. Вот прямо сейчас сделан проект на суперцикле, нескольких автоматах и системе вложенных прерываний. Тому были причины. Главная была в том, что контроллер с ядром словенской разработки очень закрыт sad.gif. Информацию выдавливать надо по капле sad.gif. Вторая причина, что есть несколько закрытых библиотек, причем обслуживания недокументированного железа sad.gif. Так все по простому было сделано, тем более, что ресурсов контроллера даже слишком много.
При этом те же автоматы обязательно используются мною во всех проектах с операционной системой.

Так что тут сравнивать то? Рассуждения о том, с помощью какого инструмента удобнее работать - с помощью молотка, или молотка и набора гаечных ключей, абсолютно глупы.
Эдди
Цитата(zltigo @ Jan 11 2017, 14:47) *
Феерический бред человека даже приблизительно не представляющего сложность беспроводных телекомуникационных протоколов.
На STM8 Вы не соберете даже полнофункциональный аналоговый проводной телефон.

Батенька, это вы сфеерический бред несете: GSM-модуль уже оснащен всем необходимым, чтобы звонить, СМСить и работать с памятью сим-карты, достаточно лишь нужные АТ-команды давать! А с этим справится даже STM8S003!!! Не надо тут разглагольствовать!
А уж полнофункциональный аналоговый телефон вообще состоит из номеронабирателя и трубки! Только аналоговых телефонных линий уже давным-давно нет. Цифровой же телефон точно так же элементарно делается.
Цитата
Разница только в том, что некоторые разработчики этот путь уже прошли и владеют разными технологиями, а некоторые все еще там (в суперцикле с прерываниями) остались топтаться.

Разница в том, что у каждого свои задачи.
Вот только я не буду городить убожище на ртоси, если мне что-то действительно сложное нужно будет сделать: я возьму армовский одноплатник с линуксом для верхнего уровня и те же STM32 для нижнего (+ реального времени).
Собственно, так и будет построена система мониторинга температуры нашего главного зеркала. И так же я собираюсь сделать новую версию хронометра для даунхилла.
zltigo
Цитата(Эдди @ Jan 11 2017, 14:56) *
Батенька, это вы сфеерический бред несете: GSM-модуль уже оснащен всем необходимым, чтобы звонить, СМСить и работать с памятью сим-карты, достаточно лишь нужные АТ-команды давать! А с этим справится даже STM8S003!!! Не надо тут разглагольствовать!

Даже не смешно. Раз уж брались поднимать GSM, то поднимайте GSM, а не придуривайтесь, что есть готовые модули, телефоны, смартфоны...
Цитата
А уж полнофункциональный аналоговый телефон вообще состоит из номеронабирателя и трубки!

Я специально выделил слово полнофункциональный. Со ВСЕМИ функциями прописанными в стандартах. Вариант сейчас возьмем чип с DSP и написанными кем-то, например, же функций CLIP не катит, как и с возьмем GSM телефон, присобачим к нему STM8S003 и назовем это GSM телефоном разработанным Эдди.
Цитата
Цифровой же телефон точно так же элементарно делается.

sm.gif sm.gif sm.gif
Цитата
Вот только я не буду городить убожище на ртоси, если мне что-то действительно сложное нужно будет сделать: я возьму армовский одноплатник с линуксом для верхнего уровня и те же STM32 для нижнего (+ реального времени).
Собственно, так и будет построена система мониторинга температуры нашего главного зеркала. И так же я собираюсь сделать новую версию хронометра для даунхилла.

Собственно так и можете продолжать делать у себя на кухне В МЕРУ СВОЕГО РАЗУМЕНИЯ для себя любимого все, что и как угодно. Это называется радиолюбительство и действительно совершенно отдельная жизнь. Когда такие радиолюбители-айтишники лезут с кухни, или лаборатории в реальный мир, то получается, например, то, что описано здесь https://electronix.ru/forum/index.php?showt...t&p=1473741 Это сделано именно по приведенному Вами рецепту - взяты готовые Wi-Fi и прочие модули, "одноплатник с линуксом" и супер-пупер "продукт" "высоких" IT технологий типа готов. Для Вашей лаборатории совершенно ПРАВИЛЬНЫЙ подход - спору нет! Только с другой стороны Вашего зеркала жизнь другая. Кто-то в конце концов разрабатывает софт для тех-же GSM модулей, которые Вы лихо собрались использовать, кто-то делает серийные изделия и обеспечивает их поддержку по всему миру, а не только у себя в лаборатории.
Herz
Цитата(Буратино @ Jan 11 2017, 13:10) *
поправлю просто для гармонии слова и дела так сказать.

Кто знает эту гармонию... Может, имелось в виду "ничтоже сумняшеся"? rolleyes.gif

Цитата(zltigo @ Jan 11 2017, 13:47) *
Феерический бред человека даже приблизительно не представляющего сложность беспроводных телекомуникационных протоколов.
На STM8 Вы не соберете даже полнофункциональный аналоговый проводной телефон.

Коллеги! Не надо эмоций. Понятно, тема с вопросом "как правильно?" обречена скатиться во флейм. Но давайте хоть без наездов.
segment
Цитата(zltigo @ Jan 11 2017, 16:16) *
Даже не смешно. Раз уж брались поднимать GSM, то поднимайте GSM, а не придуривайтесь, что есть готовые модули, телефоны, смартфоны...

Выглядит как просто попытка придраться. Может еще сам кристалл синтезировать? А то его тоже кто-то разрабатывал и поддерживает. Есть готовые модули или микросхемы с необходимым функционалом, в них заложена стоимость разработки и поддержки. Есть документированный интерфейс управления, в чем проблема их использовать?
Эдди
zltigo, вы, похоже, уже очень устарели. Советую посмотреть начинку небольшого GSM-модуля и его интерфейсы. За 400-500р на ибее/али можно взять компактный модуль, который напаивается себе на схему. К нему подсоединяются микроконтроллер (работающий АТ-командами, обслуживающий экран и клавиатуру), операционник с динамиком и микрофон. ВСЕ! Вот и готовый телефон.
О том, насколько это элементарно делается, советую загуглить "телефон на ардуине".

Основные функции телефона я уже перечислял, так что, нечего выдумывать и нести околесицу!
zltigo
Цитата(Эдди @ Jan 11 2017, 16:13) *
zltigo, вы, похоже, уже очень устарели.

Я человек, который большую часть жизни занимался телекомуникационным оборудованием и протоколами. Так что не надо мне рассказывать про то, что такое GSM c точки зрения воспитанника младшей ясельной группы. Ну идиотизм же sad.gif.

Цитата(Сега @ Jan 11 2017, 16:08) *
в чем проблема их использовать?

Проблема не в использовании, а проблема в глупейшей уверенности, внутри этих "модулей" о сложности которых в том числе и Вы, очевидно, не имеете даже отдаленного представления, находится что простое, типа обслуживания кучки температурных датчиков и так же совершенно не требующее операционных систем.
В общем типичное понятие "Недоросля" Фонвизина - "Зачем учить географию, если есть извозчики?" - зачем операционные системы, если есть "модули".
Эдди
zltigo, ну коли вы в курсе, что такое GSM, то должны быть в курсе, что никакой разработчик телефонных аппаратов не городит на рассыпухе GSM-модули, а берет готовые!
Вы же не собираете сдвиговые регистры (а то и вообще микроконтроллеры) на рассыпухе!
Так что хватит уже чепуху нести.

Мне совершенно наплевать, что внутри черного ящика. Главное — протоколы общения с ним и периферия, которую туда можно навешать.

Скажем, тот же хронометр, который я за неделю на коленке собрал (правда, так как он лично мне нафиг не нужен, дальше я не развивал идею), содержит GPS-модуль. Что, тоже прикажете всю обвязку на рассыпухе городить?
Бред же!
zltigo
Цитата(Эдди @ Jan 11 2017, 16:37) *
zltigo, ну коли вы в курсе, что такое GSM, то должны быть в курсе, что никакой разработчик телефонных аппаратов не городит на рассыпухе GSM-модули, а берет готовые!

Готов дать Вам на разборку свой iPhone на предмет поиска в нем "готового GSM модуля". На какую сумму спорим?
Но суть даже не в этом. Суть в том, что уже отвечал постом выше: https://electronix.ru/forum/index.php?showt...t&p=1473861
Цитата
Проблема не в использовании, а проблема в глупейшей уверенности, внутри этих "модулей" о сложности которых в том числе и Вы, очевидно, не имеете даже отдаленного представления, находится что простое, типа обслуживания кучки температурных датчиков и так же совершенно не требующее операционных систем.
В общем типичное понятие "Недоросля" Фонвизина - "Зачем учить географию, если есть извозчики?" - зачем операционные системы, если есть "модули".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.