Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
09.07.2012, 22:32
|
|
Заблокирован
Регистрация: 23.09.2007
Сообщений: 761
Сказал спасибо: 84
Сказали Спасибо 352 раз(а) в 151 сообщении(ях)
|
Re: UART + Atmega 8
Чтобы пользоваться телевизором и холодильником, не обязательно знать закон Ома.
Высылаю проект в Протеусе и исходник в CVAVR. Всё работает, если у Вас не запустится, придётся поверить, что приложенная картинка из этого проекта.
В отношении Вашей попытки вывести число с float могу с почти 100%-ной уверенностью сказать, что в конфигурации проекта (если у Вас CVAVR) Вы не поставили опцию (s)printf features : float, width, precision. Если бы Вы хорошо знали стандартную функцию stdio, или прочитали книгу Лебедева, о которой я писал ТС, то эту ошибку быстро бы нашли и исправили.
Я сам не крутой специалист, поэтому стараюсь обьяснить попроще и как быстрее сделать. Ведь вывод не главная задача, надеюсь, там будет ещё где изнасиловать мозг. А Ваш пример с указателями я поверхностным взглядом не понял.
|
|
|
|
10.07.2012, 11:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: UART + Atmega 8
Сообщение от kosmos440o
|
Вы не поставили опцию (s)printf features : float, width, precision
|
Нееет, юноша, я-то как раз её поставил - потому и получил приращение размера кода в 3,25Кб.
А вот ты её не поставил, отчего приращение объема кода составило порядка 1К.
Я ведь потому тебе и сказал, что твой проект не выведет float-значения, что в нём стояла опция "int, width" ( это её значение по-умолчанию ). Ну, а с опцией "float, width, precision" размер кода, подключаемого вызовом функции семейства printf, превышает-таки 3Кб, о чём тебе все и говорили задолго до того, как ты начал рыться в книжках, увидев, что проект-то и в самом деле не выводит float-значение.
Видишь ли, иногда ошибки хорошо видны, даже если тебе кажется, что они совершенно незаметны.
|
|
|
|
10.07.2012, 11:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: UART + Atmega 8
Сообщение от kosmos440o
|
Ваш пример с указателями я поверхностным взглядом не понял
|
Там же всего два оператора - " в чём проблемы"?
Сообщение от kosmos440o
|
Если бы Вы хорошо знали стандартную функцию stdio, или прочитали книгу Лебедева
|
Не смеши людей.
|
|
|
|
10.07.2012, 13:29
|
|
Заблокирован
Регистрация: 23.09.2007
Сообщений: 761
Сказал спасибо: 84
Сказали Спасибо 352 раз(а) в 151 сообщении(ях)
|
Re: UART + Atmega 8
Сообщение от tempora
|
Нееет, юноша, я-то как раз её поставил - потому и получил приращение размера кода в 3,25Кб.
|
Итак, всё с начала:
1. ТС спрашивал про вывод чисел на LCD.
2. Я предложил использовать sprintf, и выложил проект с unsigned char. Да, там не было опции float. Да. она с float не работает, потому что в ТЗ на неё такой задачи не было.
3. Я выложил кусок кода с float, чтобы показать, что это так же просто, как и с uchar. Программу я не выкладывал. Вы сами прицепили этот кусок к первой программе, и возвестили на весь мир, что программа не работает.
4. Да, программа с float весит 3.5 кБ. Но она есть,работает, и не надо насиловать мозг с указателями, чтобы ещё вывести float по вашей методике. Вы когда-нибудь работали в команде? Знаете, что то, что написал один программист, должен понимать другой, в данном случае и чайник? На это даже ГОСТы есть.То, что у Вас в голове, и недоступно для понимания другим, не имеет никакой цены. Я уже встречался на практике с такими "гениями", после которых всё приходилось переписывать с нуля. Причём, как обычно, они не могут сделать даже описание своей программы. Полёт фантазии мешает. Одно из преимуществ стандартных библиотек в том, что они общеприменимы, на них есть описания, всё уже разжёвано до предела.
Вот это что:
*--s = '0' + (byte % 10);
Хотя бы потрудились прокомментировать, я, допустим, не понимаю. А раз не понимаю, то использовать не буду. У меня есть своя функция для такого вывода, достаточно простая и без указателей. Поэтому ваши советы всего лишь пустое сотрясание воздуха, по моему мнению. К тому же вводите в заблуждение ТС, судя по его посту №22. Теперь он уверен, что стандартых функций вывода для LCD нет.
Я чувствую, что тема превращается в обычный срач, поэтому прошу прощения у всех участников за излишнюю резкость и считаю, что мы раскрыли тему полностью.
|
|
|
|
10.07.2012, 13:38
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: UART + Atmega 8
Сообщение от kosmos440o
|
Да, программа с float весит 3.5 кБ.
|
За такое надо с работы выгонять.
|
|
|
|
10.07.2012, 13:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: UART + Atmega 8
Сообщение от kosmos440o
|
Вот это что:
Код:
|
*--s = '0' + (byte % 10); |
Хотя бы потрудились прокомментировать, я, допустим, не понимаю.
|
Ну вот, всё и встало на свои места. Успехов в " добраться до Езернета".
|
|
|
|
10.07.2012, 14:56
|
|
Заблокирован
Регистрация: 23.09.2007
Сообщений: 761
Сказал спасибо: 84
Сказали Спасибо 352 раз(а) в 151 сообщении(ях)
|
Re: UART + Atmega 8
Сообщение от tempora
|
Ну вот, всё и встало на свои места. Успехов в "добраться до Езернета".
|
Вы не поверите, но я делаю устройства на Modbus'е. В том числе и на Атмеге8. Практически всё с использованием стандартных функций. Есть и свои, но я стараюсь их не использовать. Указатели практически не использую. Так что это возможно! Первые уже год работают! Modbus весит около 2 кБайт, так что в Атмеге8 ещё место для ПИД-регуляторов и логики остаётся!
Если будет свободное время, желание и возможность заработать на проектах с Ethernet, я думаю, это не составит проблемы.
|
|
|
|
10.07.2012, 19:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: UART + Atmega 8
Если мы не понимаем что такое *--s = '0' + ( byte % 10) , то до Езернета - как до луны будет ))
Надо на C# писать - там указатели не в чести тоже ))
|
|
|
|
10.07.2012, 20:29
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: UART + Atmega 8
Указатели не в чести
А когда память кончится?
|
|
|
|
10.07.2012, 21:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: UART + Atmega 8
Ну, если память кончается - то ты не программист, а кодировщик. Сначала задачку надо решить системно - какую железяку использовать, на каком инструменте писать, а не кидаться сразу на клаву как Тузик на сучку. ))
Благо, щас выбор огромный - какой нить stm32f4XX дешевле бутылки водки, а stm8 - бутылки пива )).
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
ATMEGA простой UART (RS232) без max232
|
EXIS |
Микроконтроллеры, АЦП, память и т.д |
39 |
09.12.2010 18:51 |
Вопрос по формату кадра UART в ATmega-х
|
Don_Ambrosio |
Микроконтроллеры, АЦП, память и т.д |
6 |
19.03.2008 23:56 |
UART и WinAVR
|
SpiderHall |
Микроконтроллеры, АЦП, память и т.д |
1 |
30.10.2006 20:53 |
UART
|
slawa |
Микроконтроллеры, АЦП, память и т.д |
4 |
19.01.2006 12:44 |
UART
|
xaoc |
Микроконтроллеры, АЦП, память и т.д |
13 |
01.07.2005 09:31 |
Часовой пояс GMT +4, время: 16:48.
|
|