Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
14.08.2006, 16:50
|
|
Вид на жительство
Регистрация: 15.03.2005
Сообщений: 381
Сказал спасибо: 11
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
|
по 3 пункту, я бы сказал не критичные к скорости, а сли надо совершенно точно знать за какое время блок выполняется, скорость правильно написанного сишного кода не меньше чем у асма (во всяком cлучае на AVR)
|
|
|
|
14.08.2006, 17:15
|
|
Временная регистрация
Регистрация: 17.05.2006
Сообщений: 72
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Во-во... С помощью языка Си можно делать быстро и удобно проги, мало чем уступающие написанным на асме. Грамотное использование указателей, форматов данных и т.д. позволяет и скорость выполнения отдельных кусков кода повысить и объём уменьшить.
На 16 МГц меге8 была мной написана программка мультиплексора-демультиплексора 4-х программно реализуемых RS232 в 1 аппаратный RS232. При программной реализации RS я сканировал по таймеру каждый бит 7 раз. Приём и передача идут параллельно. И это всё на скорости 9600 для программных RS и 19200 для аппаратного. Плюс ещё запись принятой информации для буферизации в ОЗУ по шине I2C.
Так что Си рулит, однозначно. А если надо ухищряться и код уменьшать из-за нехватки памяти-скорости, то, ИМХО, надо либо задачу упрощать, либо проц менять, благо их сейчас уйма.
__________________
"Имею честь иметь Вашу честь в своём доме..."
|
|
|
|
15.08.2006, 00:36
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Си
Сообщение от sidd
|
Я извиняюсь, может не совсем по теме, а может как раз и по фундаменту темы....
Прежде чем задать вопрос - пару слов о себе, так сказать уровень вопроса. Я уже лет 5-6 зарабатываю на жизнь написанием разных программ на разные процессора, создание девайсов и проектов. Пишу на астме, причем программы до 32 кб пишу практически за день-два, ну и отладка и тестирование до недели. проект готов.
Теперь к вопросу - каждому человеку легче общаться на
родном языке. Вот ассемблер для меня родной, а про Си я и понятия не имею..... Может ли кто то мне популярно и просто рассказать есть ли преимущества
у этого языка перед ассемблером??? в чем они???
Есть ли смысл переходить на него???
Еще замечание - обязательно учитывайте специфику
микроконтроллеров. В ассемблере я легко могу вычислять до такта все времЕнные задержки, а поручив
дело написания подпрограммы Си можно ли к примеру
реализовать NRZ протокол в 115200 бод при тактовой 4 мег на пик 16ф84????
|
Писал несколько лет на ASMe. Сейчас пишу второй проект на С. Язык как язык. Очень низкоуровневый, что оптимально для МК. Основное преимущество (для меня), - некоторая независимость от ядра МК. То есть в Вашем случае Ваша прога по NRZ с незначительными изменениями (инициализация и обращение к SFR регистрам) подошла бы и для PIC и для AVR и т.д.
Что касается Вашего вопроса, то думаю при правильной организации проги (кольцевой буфер, прерывания) формирование последовательности ч/з массив, - на С Вы бы справились с задачей.
|
|
|
|
15.08.2006, 01:10
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Сообщение от Vasilij
|
Сообщение от delay
|
Я тут наблюдаю целеустрёмлённое бестактное охаивание. Есть лучше - предложите. Есть критические замечания по данному курсу - так просто достаточно один раз их высказать.
|
Присоединяюсь, но с оговоркой . Здесь все специалисты от чайника до ... Не просто укажите ошибку, предложите вариант исправления. Ведь есть же своё видение темы, видение специалиста. Наверное поэтому avr и завёл эту тему, не только увидеть свои ошибки но и принять Ваши предложения. А ругать, указывать, умничать всегда проще.
|
Не собираюсь ругать Ваш курс. Даже если он помог одному человеку, то это Ваша личная заслуга. Оценил объём работы который Вы выполнили. Но, всё же выскажу свои критические замечания. Постарайтесь их воспринять спокойно. Я лишь хочу помочь, и возможно мои замечания помогут улучшить Ваш курс, или изменят новые, которые Вы сейчас пишете.
Итак...
1) Я присутствовал при конфликте на Electronix и считаю, что Вам просто надо извинится перед людьми. Я думаю Вас спокойно примут назад без особых воспоминаний о прошлом. Почему извинится??? За оголтелую безпредметную рекламу. От неё люди и так опухли, а тут Вы ... Вспомните претензии к Вам начались не с начала. Люди терпели. Например меня Вы несколько раз отправляли почитать Ваш курс, когда я задавал конкретный вопрос по IAR. Но у Вас в курсе нет на них ответов. Так за чем Вы это делали? На первую страницу. При отсутствии навигации. (Это моё личное мнение и если Вы с ним не согласны, то не надо его обсуждать)
2) Вам надо спокойнее воспринимать критику. Посмотрите хотябы эту ветку. Любую критику - в штыки. Разбить в пух и прах. По пунктам.
На мой взгляд - это лишнее. Форум очень демократичен. За ником не видно людей. И высмеять профессионала может начинающий. Изучил только одну тему, но в совершенстве!
Это не страшно. Я, например, извиняюсь. Или отмечаю где меня не правильно поняли. Ругаться - последнее дело.
3) Вы так обижаетесь, на критику оформления курса. Но ответьте сами себе. Если поручить это профессионалам, курс от этого выиграет? Зачем Вы его писали? Вы хотите чтобы его читали? Сколько времени и здоровья на него потрачено, может ещё немного усилий или денег приложить, может отдача будет выше?
Хотел привести пару мест, из курса которые на мой взгляд не совсем корректные, но собственно считаю это не главным. Если интересует отвечу, но главное я изложил выше.
|
|
|
|
15.08.2006, 11:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от SasaVitebsk
|
Хотел привести пару мест, из курса которые на мой взгляд не совсем корректные
Если интересует отвечу, но главное я изложил выше.
|
приведите, возможно нужно исправить.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
15.08.2006, 15:53
|
|
Прохожий
Регистрация: 12.08.2006
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Добрый день...
можно ли эмулировать работу следущей системы Atmega128+cc2230{Zigbee модуль}...прошивку я написал...а проверить не получается... точнее...я пытался эмулировать, сеть из 2х-3х таких передатчиков... чтоб посмотреть приходят ли пакеты. Можете что-то посоветовать?
|
|
|
|
15.08.2006, 17:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
наверно максимум что можно это записать лог анализатором в ПРОТЕУС диаграммы того что мега шлет на трансивер.
Если модели трансивера нет то можно напрячся и на меге запрограмирвать модель трансивера по ДШ и порадовать общественность.
Или уж совсем напрячся и сделать настоящую модель для PROTEUS.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
16.08.2006, 03:07
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Сообщение от avr123-nm-ru
|
Сообщение от SasaVitebsk
|
Хотел привести пару мест, из курса которые на мой взгляд не совсем корректные
Если интересует отвечу, но главное я изложил выше.
|
приведите, возможно нужно исправить.
|
Не то чтобы нужно исправлять, но мне данное место не очень понравилось.
"...Однако некоторые из этих устройств (например USART, SPI, TWI он же i2c) можно реализовать программно (старайтесь избегать этого!) и тогда им можно сопоставить любые не занятые ножки IO. ..."
"...А что делать если вам нужно, например 4 интерфейса TWI (боле известен как i2c от philips) а в МК AVR он только один ?
Выход прост - можно применить аналоговые ключи - мультиплексоры, например компании Analog.com серии ADGxxx и программно коммутировать (переключать) ими линию SCL МК на линию SCL одного из 4 интерфейсов TWI используемого в данный момент. Напомню что на одну линию TWI ( i2c ) можно поставить несколько устройств с разными адресами!
Аналогично можно поступить и в других случаях.
Либо реализовать дополнительные интерфейсы программно.
..."
На мой взгляд приведенный пример с I2C совсем не характерен. Во-первых он позволяет подключить много различных устройств (128/Мне ни разу не приходилось применять 2 канала I2C в одном устройстве). Во-вторых он как раз весьма просто реализуется програмно (master). И уж я совсем себе не представляю ситуацию чтобы я применил внешние микросхемы для данной цели.
Во-вторых я, и не только я (посмотрите например сайт UBICOM), совершенно не понимаю почему надо избегать програмной реализации чего бы то ни было. Чем больше функций на себя берёт программа, тем лучше. Дешевле, надёжнее, меньше места, гибче, эффективнее в сопровождении.
Возможно Вы имели ввиду, "старайтесь избегать на начальном этапе". Тогда, возможно Вы правы.
Не претендую на истину в последней инстанции. Просто высказываю своё мнение.
|
|
|
|
16.08.2006, 11:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
странно... но я правда считаю что "железом" лучше чем "софтом".
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
16.08.2006, 22:08
|
|
Гражданин KAZUS.RU
Регистрация: 21.02.2005
Сообщений: 685
Сказал спасибо: 14
Сказали Спасибо 84 раз(а) в 44 сообщении(ях)
|
У железной реализации есть преймущество. Пока железо работает ты можеш программу направить на решение других задач. Это ценее золата при сложных проэктах.
На заре ПК тоже все прогрммно решалось. А сейчас? Видио - видиокарта, прередача данных - сетевуха, звук - зуковуха ... А основная прога только АИПИ функции шлет.
При том важно помнить что в железной реализации ошибок при программировании меньше наделаеш.
А скорость написания кода? Послал байт в регистр, выставил флаг, а дальше пусть железо с протоколом парится, у тебя головка не болит.
Я за реализацию в железе (конечно в рамках разумного).
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:15.
|
|