Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 06.07.2013, 01:49  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от ilyamp Посмотреть сообщение
Содержимое макроса - тоже код
Сообщение от ilyamp Посмотреть сообщение
Сами то эти функции всё равно переписывать
Да, но только в одном месте и совсем немного.
Перенесите с одного МК на другой программку килобайт на 200 (пара-тройка томов "Войны и мира" в исходниках) - понимание придёт само.

Сообщение от ilyamp Посмотреть сообщение
Простите, я не понял о чём тут...
...хотя... не парьтесь. Ерунда это всё.
Реклама:
omercury вне форума  
Непрочитано 06.07.2013, 03:57  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от ilyamp Посмотреть сообщение
Кроме стиля написания должен же быть ещё алгоритм.
Какие истины открываются - неожиданные, глубокие.
Однако, стиль и алгоритм не есть отдельные, независимые вещи, которые можно разделить словом "кроме".
Стиль также отнюдь не сводится к форматированию кода или систематическому именованию переменных - стиль подразумевает определенные правила и для формирования алгоритмов. В частности, стиль вырабатывается именно с целью повысить уровень контролируемости алгоритмов, уровень их дуракоупорности, модифицируемости. И одним из следствий удовлетворения таким требованиям является такое разбиение алгоритма на блоки, при котором количество одновременно задействованных переменных не затрудняет программисту работу с алгоритмом. Я про это:
Сообщение от ilyamp Посмотреть сообщение
если в программе, скажем, сотня переменных в т.ч. структур, десяток массивов, то уже сам не всегда помнишь их типы, когда исправляешь очередную функцию.
Сообщение от ilyamp Посмотреть сообщение
Это ещё и вопрос затраченного времени

Впрочем, действительно - "не парьтесь". Программа из одной функции (в "идеале") с "сотней переменных и структур, десятком массивов" - это же так увлекательно, стоит ли превращать это приключение в рутину обозримых функций с обозримым количеством переменных в каждой?...
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 06.07.2013 в 04:39.
tempora вне форума  
Непрочитано 06.07.2013, 11:07  
ilyamp
Прописка
 
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
ilyamp на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

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

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

Последний раз редактировалось ilyamp; 06.07.2013 в 11:11.
ilyamp вне форума  
Непрочитано 06.07.2013, 11:24  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от ilyamp Посмотреть сообщение
не говорил про одну функцию в программе,
Да, я читал Ваши посты. Это была эмфаза (цит: "в "идеале"), ведь Вы же сами сообщили, что переменных у Вас столько, что Вам трудно с ними работать (цит: "уже сам не всегда помнишь ...").

Сообщение от ilyamp Посмотреть сообщение
компилятор Си это (передачу параметров) корректно делает через стек, что занимает время, ...
Почему обязательно через стек? Каким компилятором пользуетесь?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 06.07.2013, 11:37  
ilyamp
Прописка
 
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
ilyamp на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от omercury Посмотреть сообщение
Перенесите с одного МК на другой программку килобайт на 200 (пара-тройка томов "Войны и мира" в исходниках) - понимание придёт само.
Честно говоря, за всё время своей работы переносить старый код на новый МК пришлось всего один раз, 35кб, с 1830ВЕ31 на 1882ВЕ53, оба - отечественные51е
Что смешно, код был на асме, перенёсся один к одному, пару функций дописал новых пару закомментил, но это - из-за изменения алгоритма.
Обычно всё начинается с новой задачи - выбираешь МК, изучаешь даташиты, рисуешь схему, пишешь программу, отлаживаешь, потом, в процессе доводки или доработки системы - изменяешь программу. А переносить на другое ядро - зачем? Я пример то привёл с пиком16 и атмегой, только по жизни не встречал такого
ilyamp вне форума  
Непрочитано 06.07.2013, 11:38  
ilyamp
Прописка
 
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
ilyamp на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от tempora Посмотреть сообщение
Почему обязательно через стек? Каким компилятором пользуетесь?
Я в данном случае имел в виду С30 v1.31

Переменных много, потому что программа большая, там текста килобайт по 150-200 на асме
и к этому же 50 кб на Си
На асме кстати из-за того что приходится ДСП ядро задействовать

Последний раз редактировалось ilyamp; 06.07.2013 в 11:43.
ilyamp вне форума  
Непрочитано 06.07.2013, 11:44  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от ilyamp Посмотреть сообщение
Переменных много, потому что программа большая
"Мочи мочало, начинай с начала...". Извините, но это непродуктивный режим - ходить по кругу, как известно, можно до бесконечности, а у меня её нет.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 06.07.2013, 11:51  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от ilyamp Посмотреть сообщение
А переносить на другое ядро - зачем?
Переносил с меги на пик16, во время кризиса атмела - за мегу драли в двадорога.
Сейчас переношу на стм8, ибо стм8 дешевле.
oleg110592 вне форума  
Непрочитано 06.07.2013, 11:53  
ilyamp
Прописка
 
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
ilyamp на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

К вопросу о готовых библиотеках.

Попытался недавно найти нормальный обработчик для I2C для dsPIC33FJ128MC804 - так и не нашёл, пришлось самому писать
ilyamp вне форума  
Непрочитано 06.07.2013, 11:57  
ilyamp
Прописка
 
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
ilyamp на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от oleg110592 Посмотреть сообщение
Переносил с меги на пик16, во время кризиса атмела - за мегу драли в двадорога.
Сейчас переношу на стм8, ибо стм8 дешевле.
да, проблемы с производителем - это бывает...
ilyamp вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимальный лазерник для ЛУТ Kabron Делимся опытом 187 31.05.2016 10:51
Оптимальный привод тележки весом 200кг d-f-m Производственное оборудование 18 12.07.2010 00:29
[Решено] Оптимальный коттеджный домофон LAVR12 Автоматика и аппаратура связи 0 22.04.2010 20:17
О программировании AVR на C++ neiver Микроконтроллеры, АЦП, память и т.д 55 24.03.2010 19:33
Оптимальный ламинатор для ЛУТ snakesoft Делимся опытом 7 13.01.2010 22:41


Часовой пояс GMT +4, время: 12:40.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot