05.07.2013, 22:35
|
|
Прописка
Регистрация: 19.02.2013
Адрес: Москва
Сообщений: 107
Сказал спасибо: 17
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Вы обсуждаете с чего лучше начинать, я правильно понял?
начали вроде с одного, а дальше как обычно..
Последний раз редактировалось alec220; 06.07.2013 в 09:51.
|
|
|
|
05.07.2013, 23:47
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от nahimovv
|
Можно я улыбнусь, вы улыбнётесь вместе со мной... и не будете больше ничего доказывать, ибо не получается это у вас.
|
![Улыбка](images/smilies/icon_smile.gif) я не доказываю, просто делюсь опытом, вдруг кому интересно...
omercury ,спасибо за обстоятельный ответ с кодом))
Я только хочу заметить, что под термином "периферийный модуль" мы с Вами, видимо, понимаем не одно и то же.
Попробую привести несколько искусственный пример для АВР, если эта
платформа Вам ближе.
Модуль АЦП ATmega8x ATmega16x ATmega64x управляются регистрами, имеющими разные названия, находящимися по разным адресам и содержащими неодинаковые управляющие биты: ADCSR, ADCSRA,
ADCSRB. Если Вы поменяете один контроллер на другой, то, помимо простого переназначения адресов в заголовочных файлах Вы будете вынуждены изменить часть кода, относящуюся к настройке/функционированию АЦП.
Конечно можно воспользоваться библиотечными функциями, но поскольку модуль поменялся функционально, код всё равно придётся исправлять. И это в рамках одной платформы.
Если кому-то нужно перенести что-нибудь, использующее ADC, SPI, I2C с 16го пика на атмегу или наоборот, то программу, несмотря на то, что она на Си придётся переписывать почти заново.
Но это не займёт много времени, по сравнению с изучением другой архитектуры, если она не знакома.
По поводу использования готовых С библиотек и их качества у меня сложилось мнение, что своя функция обычно работает лучше и быстрее, чем написанная неким дядей для универсального использования(универсальные вещи обычно хуже специализированных)
|
|
|
|
05.07.2013, 23:54
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от tempora
|
А почему предлагаешь именно мне - мой стиль хромает?
|
Не тебе конечно.Извини если это выглядит как пинок тебе.
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 05.07.2013 в 23:56.
|
|
|
|
05.07.2013, 23:55
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от tempora
|
...я помню, как в самом начале давал переменным однобуквенные имена, так как на печатание длинных и информативных уходило слишком много времени...
|
Я имел в виду не имена переменных а именно их типы
|
|
|
|
06.07.2013, 00:04
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от ilyamp
|
Если кому-то нужно перенести что-нибудь, использующее ADC, SPI, I2C с 16го пика на атмегу или наоборот, то программу, несмотря на то, что она на Си придётся переписывать почти заново.
Но это не займёт много времени, по сравнению с изучением другой архитектуры, если она не знакома.
|
А если изначально кодить модульно избегаем подобных проблем.
Например тот же SPI - нужно всего 2 функции :
Init и Write_spi . И не важно какие телодвижения в ней происходят на уровне железа .
Задача Write_spi передать и принять байт при 8ми битной посылке или 16бит.
__________________
Осторожно , злой кот
|
|
|
|
06.07.2013, 00:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от ilyamp
|
Сообщение от tempora
|
Сообщение от ilyamp
|
уже сам не всегда помнишь их типы, когда исправляешь очередную функцию.
|
Это вопрос стиля, а не количества переменных.
|
Это ещё и вопрос затраченного времени
|
( тут был вопрос, куда ж столько времени-то уходит - не на длинные ли имена переменных)
Сообщение от ilyamp
|
Я имел в виду не имена переменных а именно их типы
|
Тогда это именно вопрос стиля - так как тип правильно названной переменной не приходится вспоминать.
__________________
There's always more than one way to skin a cat.
|
|
|
|
06.07.2013, 00:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от ilyamp
|
Я только хочу заметить, что под термином "периферийный модуль" мы с Вами, видимо, понимаем не одно и то же.
|
Судя по всему, мы понимаем под периферией именно одно и то же.
Если я оформлю настройку, включение/выключение, выбор канала того же АЦП в виде макроса (с параметрами или без - не суть важно), зачем мне лазать по телу программы и менять вызов этого макроса?
Я поменяю только содержимое этого макроса для другого ядра, в теле программы всё останется в том же виде.
Сообщение от dosikus
|
А если изначально
|
У, жук, опередил
|
|
|
|
06.07.2013, 00:26
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от ilyamp
|
Попробую привести несколько искусственный пример
|
А я приведу реальный.
Цитата:
|
Если кому-то нужно перенести что-нибудь, использующее ADC, SPI, I2C с 16го пика на атмегу или наоборот, то программу, несмотря на то, что она на Си придётся переписывать почти заново.
|
FatFs от Чена, SPI... есть необходимость всё переписывать заново?
|
|
|
Сказали "Спасибо" nahimovv
|
|
|
06.07.2013, 01:08
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от omercury
|
Я поменяю только содержимое этого макроса для другого ядра, в теле программы всё останется в том же виде.
|
Содержимое макроса - тоже код
Сообщение от tempora
|
тип правильно названной переменной не приходится вспоминать
|
Согласен, стиль важен. Кроме стиля написания должен же быть ещё алгоритм.
Сообщение от dosikus
|
Например тот же SPI - нужно всего 2 функции :
Init и Write_spi . И не важно какие телодвижения в ней происходят на уровне железа .
|
Сами то эти функции всё равно переписывать
Вообще микроконтроллер, в отличие от компьютера, предназначен для управления именно на уровне железа, и "всплыть" на верхний уровень чистого стильного программирования, отрываясь от схемы, расчёта номиналов, расчёта временных диаграмм, частот, полос пропускания и т.п. - т.е. привязки к реальным условиям - никогда не удаётся. Вопрос стильности написания - важный, но далеко не едиственный
|
|
|
|
06.07.2013, 01:09
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от nahimovv
|
FatFs от Чена, SPI... есть необходимость всё переписывать заново?
|
Простите, я не понял о чём тут...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:37.
|
|