Dale
|
|
« : 14-11-2011 06:17 » |
|
|
|
« Последнее редактирование: 01-08-2012 12:40 от Dale »
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
Sla
|
|
« Ответ #1 : 21-11-2011 07:07 » |
|
Делаем выводы: использование языка C для программирования микроконтроллеров не влечет непременного раздувания программного кода и снижения его эффективности. Зато выигрыш в производительности труда программиста очевиден.
Не влечет, если тщательно изучать листинг, и в нужный момент корректировать код.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dale
|
|
« Ответ #2 : 21-11-2011 08:16 » |
|
Не влечет, если тщательно изучать листинг, и в нужный момент корректировать код. Вообще-то я специально немного слукавил и не сразу включил максимальную оптимизацию компилятора, чтобы наглядно показать ее влияние. Надо бы еще в статью добавить пару цитат по поводу оптимизации из https://club.shelek.ru/viewart.php?id=342
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
Sla
|
|
« Ответ #3 : 21-11-2011 08:36 » |
|
Dale, конечно же надо сослаться. И оговорить требования к проекту
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dale
|
|
« Ответ #4 : 21-11-2011 08:43 » |
|
Требования оговорены в самом начале здесь: https://forum.shelek.ru/index.php/topic,27682.msg268935.html#post_A3 . Без формальностей в духе IEEE, ибо примитивны донельзя.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
Sla
|
|
« Ответ #5 : 21-11-2011 08:50 » |
|
ой... ну ты уж извини, я забыл что было в первой части. Ок. Делаем выводы: использование языка C для программирования микроконтроллеров не влечет непременного раздувания программного кода и снижения его эффективности. Зато выигрыш в производительности труда программиста очевиден. Так же читаем статью о ... ссылка на "оптимизацию" ... И не забываем, что требования к проекту были озвучены в первой части. (ссылка) Тем самым убьем несколько зайцев + перелинкуем статьи
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dale
|
|
« Ответ #6 : 21-11-2011 17:37 » |
|
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #7 : 21-11-2011 17:49 » |
|
Dale, в итоге, это та самая статья, о которой ты сказал с год назад?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #8 : 21-11-2011 17:52 » |
|
Dale, в итоге, это та самая статья, о которой ты сказал с год назад? Я не вполне понял, о чем речь... Можно ссылку или напоминание?
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #9 : 21-11-2011 18:00 » |
|
Я по памяти. Попробую найти. Где-то в обсуждении статей было.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #10 : 21-11-2011 18:05 » |
|
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #11 : 21-11-2011 18:16 » |
|
Нет, та статья пока еще ждет своего часа.
У меня в замыслах такое дальнейшее развитие сюжета. Мигать светодиодом при помощи контроллера, конечно, очень круто. Но что делать, если нужно, к примеру, мигать одновременно двумя, да еще и вразнобой (с некратными периодами)? Можно притянуть за уши таймер и работать с прерываниями, но тут всплывает еще одна задача: отслеживать нажатие кнопки и передавать азбукой Морзе сигнал SOS третьим светодиодом.
Спасти отцов русской демократии могут протопотоки. Разнесем каждую задачу в свой поток и будем гонять параллельно на одном ядре в режиме кооперативной мультизадачности.
А там уже и до задачи "производитель-потребитель" рукой подать. Заодно и реанимирую подзависшую ветку про мультипрограммирование. Я про нее не забыл, просто практической потребности пока не было, у нас сейчас теория далеко обогнала практику. Будем исправлять перекос при помощи паяльника.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #12 : 21-11-2011 18:22 » |
|
Можно использовать таймер не для создания задержки для отдельного светодиода, а для задержки между событиями ввода-вывода для набора устройств. Конечно, тут многое зависит от разрешающей способности таймера, потребности в точности для этих событий и реализаций обработчиков.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #13 : 21-11-2011 18:31 » |
|
Там должна получиться очередь к таймеру от разных устройств (две мигалки, кнопка с программным подавлением дребезга, генератор кода Морзе)... Эту очередь нужно будет сортировать, синхронизировать задачи... Сначала покажу, какой запутанный, некрасивый и трудно масштабируемый код получается, а потом перейдем к протопотокам.
А для задачи "поставщик-потребитель" уже придумал реальный пример. Сделаю контроллер мини-дрели с программированием и стабилизацией оборотов. Там один поток-производитель будет измерять обороты шпинделя, а потребители будут индицировать и регулировать их.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
Sla
|
|
« Ответ #14 : 21-11-2011 18:55 » |
|
Предлагаю в общем сделать топик, где Будет поставлена задача Мигание светодиода, нажатие кнопок и прочее Определены условия - возможности железяки Заслушать мнения и решения без обсуждений. > Тема создана.<
|
|
« Последнее редактирование: 08-12-2011 20:56 от RXL »
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #15 : 26-11-2011 17:56 » |
|
Вопрос: не следует ли заменить "unsigned short" на "uint16_t"?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #16 : 26-11-2011 18:24 » |
|
Пусть остается. Я специально не стал навязывать компилятору конкретный тип для организации внутреннего цикла, пусть сам оптимизирует.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #17 : 08-12-2011 20:54 » |
|
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|