06.07.2013, 01:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от ilyamp
|
Содержимое макроса - тоже код
|
Сообщение от ilyamp
|
Сами то эти функции всё равно переписывать
|
Да, но только в одном месте и совсем немного.
Перенесите с одного МК на другой программку килобайт на 200 (пара-тройка томов "Войны и мира" в исходниках) - понимание придёт само.
Сообщение от ilyamp
|
Простите, я не понял о чём тут...
|
...хотя... не парьтесь. Ерунда это всё.
|
|
|
|
06.07.2013, 03:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от ilyamp
|
Кроме стиля написания должен же быть ещё алгоритм.
|
Какие истины открываются - неожиданные, глубокие.
Однако, стиль и алгоритм не есть отдельные, независимые вещи, которые можно разделить словом "кроме".
Стиль также отнюдь не сводится к форматированию кода или систематическому именованию переменных - стиль подразумевает определенные правила и для формирования алгоритмов. В частности, стиль вырабатывается именно с целью повысить уровень контролируемости алгоритмов, уровень их дуракоупорности, модифицируемости. И одним из следствий удовлетворения таким требованиям является такое разбиение алгоритма на блоки, при котором количество одновременно задействованных переменных не затрудняет программисту работу с алгоритмом. Я про это:
Сообщение от ilyamp
|
если в программе, скажем, сотня переменных в т.ч. структур, десяток массивов, то уже сам не всегда помнишь их типы, когда исправляешь очередную функцию.
|
Сообщение от ilyamp
|
Это ещё и вопрос затраченного времени
|
Впрочем, действительно - "не парьтесь". Программа из одной функции ( в "идеале") с " сотней переменных и структур, десятком массивов" - это же так увлекательно, стоит ли превращать это приключение в рутину обозримых функций с обозримым количеством переменных в каждой?...
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 06.07.2013 в 04:39.
|
|
|
|
06.07.2013, 11:07
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от tempora
|
И одним из следствий удовлетворения таким требованиям является такое разбиение алгоритма на блоки, при котором количество одновременно задействованных переменных не затрудняет программисту работу с алгоритмом. Я про это:
Сообщение от ilyamp
|
Посмотреть сообщение
если в программе, скажем, сотня переменных в т.ч. структур, десяток массивов, то уже сам не всегда помнишь их типы, когда исправляешь очередную функцию.
Это ещё и вопрос затраченного времени
|
Впрочем, действительно - "не парьтесь". Программа из одной функции (в "идеале") с "сотней переменных и структур, десятком массивов" - это же так увлекательно, стоит ли превращать это приключение в рутину обозримых функций с обозримым количеством переменных в каждой?...
|
Совершенно с Вами согласен, никогда не говорил про одну функцию в программе, я имел в виду общее количество информативно названных переменных и удобное разбиение общего алгоритма на модули ![Улыбка](images/smilies/icon_smile.gif)
Это требование очень легко реализуется как в Си, так и в асме, но если передавать в функцию значения, компилятор Си это корректно делает через стек, что занимает время, а я в асме - некорректно, через глобальные или через регистры, что ухудшает целостность данных, реентерабельность и т.п. но зато несколько экономит время
Последний раз редактировалось ilyamp; 06.07.2013 в 11:11.
|
|
|
|
06.07.2013, 11:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от ilyamp
|
не говорил про одну функцию в программе,
|
Да, я читал Ваши посты. Это была эмфаза ( цит: "в "идеале"), ведь Вы же сами сообщили, что переменных у Вас столько, что Вам трудно с ними работать ( цит: "уже сам не всегда помнишь ...").
Сообщение от ilyamp
|
компилятор Си это (передачу параметров) корректно делает через стек, что занимает время, ...
|
Почему обязательно через стек? Каким компилятором пользуетесь?
__________________
There's always more than one way to skin a cat.
|
|
|
|
06.07.2013, 11:37
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от omercury
|
Перенесите с одного МК на другой программку килобайт на 200 (пара-тройка томов "Войны и мира" в исходниках) - понимание придёт само.
|
Честно говоря, за всё время своей работы переносить старый код на новый МК пришлось всего один раз, 35кб, с 1830ВЕ31 на 1882ВЕ53, оба - отечественные51е
Что смешно, код был на асме, перенёсся один к одному, пару функций дописал новых пару закомментил, но это - из-за изменения алгоритма.
Обычно всё начинается с новой задачи - выбираешь МК, изучаешь даташиты, рисуешь схему, пишешь программу, отлаживаешь, потом, в процессе доводки или доработки системы - изменяешь программу. А переносить на другое ядро - зачем? Я пример то привёл с пиком16 и атмегой, только по жизни не встречал такого
|
|
|
|
06.07.2013, 11:38
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от tempora
|
Почему обязательно через стек? Каким компилятором пользуетесь?
|
Я в данном случае имел в виду С30 v1.31
Переменных много, потому что программа большая, там текста килобайт по 150-200 на асме
и к этому же 50 кб на Си
На асме кстати из-за того что приходится ДСП ядро задействовать
Последний раз редактировалось ilyamp; 06.07.2013 в 11:43.
|
|
|
|
06.07.2013, 11:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от ilyamp
|
Переменных много, потому что программа большая
|
" Мочи мочало, начинай с начала...". Извините, но это непродуктивный режим - ходить по кругу, как известно, можно до бесконечности, а у меня её нет.
__________________
There's always more than one way to skin a cat.
|
|
|
|
06.07.2013, 11:51
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от ilyamp
|
А переносить на другое ядро - зачем?
|
Переносил с меги на пик16, во время кризиса атмела - за мегу драли в двадорога.
Сейчас переношу на стм8, ибо стм8 дешевле.
|
|
|
|
06.07.2013, 11:53
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
К вопросу о готовых библиотеках.
Попытался недавно найти нормальный обработчик для I2C для dsPIC33FJ128MC804 - так и не нашёл, пришлось самому писать
|
|
|
|
06.07.2013, 11:57
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от oleg110592
|
Переносил с меги на пик16, во время кризиса атмела - за мегу драли в двадорога.
Сейчас переношу на стм8, ибо стм8 дешевле.
|
да, проблемы с производителем - это бывает...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:40.
|
|