Нескольно простых вопросов о программировании AVR на Си.
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: Нескольно простых вопросов о программировании AVR на Си.
[uquote="prinv",url="/forum/viewtopic.php?p=3289571#p3289571"]По Сеньке и шапка.
Если задача простая, то и в поллинге (while(IsReady()) ничего плохого нет.[/uquote]
Семен Семеныч! Ну что же Вы так! if(IsReady()) норма. А while(IsReady()) это тупо простаивание пока интерфейс тупит.
с таймерами все просто, главное чтобы выполнение задачи укладывалось между тиками таймеров. Здесь нужен творческий подход. Если задача критическая - нужен жесткий аппаратный таймер с наивысшим приоритетом прерываний (пользуясь случаем, хочу передать привет приоритетам прерываний в 8-битных АВРках (про хмегу я в курсе)).
Если нужно время от времени что-то проверять - то сгодится и софтверный системный таймер. Вот у меня в проектах есть такой, допускающий 7 програмных таймеров (больше пока не требовалось), с приводом от одного аппаратного. На один повесил проверку буфера модбаса, на другой - считывание кнопок, третий пулит машину состояний ацп и готовит/проверяет буффер spi и т.д. В результате главный цикл - пустой.
Если задача простая, то и в поллинге (while(IsReady()) ничего плохого нет.[/uquote]
Семен Семеныч! Ну что же Вы так! if(IsReady()) норма. А while(IsReady()) это тупо простаивание пока интерфейс тупит.
с таймерами все просто, главное чтобы выполнение задачи укладывалось между тиками таймеров. Здесь нужен творческий подход. Если задача критическая - нужен жесткий аппаратный таймер с наивысшим приоритетом прерываний (пользуясь случаем, хочу передать привет приоритетам прерываний в 8-битных АВРках (про хмегу я в курсе)).
Если нужно время от времени что-то проверять - то сгодится и софтверный системный таймер. Вот у меня в проектах есть такой, допускающий 7 програмных таймеров (больше пока не требовалось), с приводом от одного аппаратного. На один повесил проверку буфера модбаса, на другой - считывание кнопок, третий пулит машину состояний ацп и готовит/проверяет буффер spi и т.д. В результате главный цикл - пустой.
- Реклама
- prinv
- Вымогатель припоя
- Сообщения: 677
- Зарегистрирован: Чт янв 20, 2011 09:07:08
- Откуда: Пермь
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
Если задачи однопоточная, то и поллинг сойдёт.
Никакая контра не уйдёт от нас
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: Нескольно простых вопросов о программировании AVR на Си.
[uquote="prinv",url="/forum/viewtopic.php?p=3289629#p3289629"]Если задачи однопоточная, то и поллинг сойдёт.[/uquote]
не надо приучивать себя к плохому.
не надо приучивать себя к плохому.
- prinv
- Вымогатель припоя
- Сообщения: 677
- Зарегистрирован: Чт янв 20, 2011 09:07:08
- Откуда: Пермь
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
Не надо плодить сущностей без нужды.
Никакая контра не уйдёт от нас
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
и что? вот как раз в прерываниях во время этого тупения и надо делать полезную работу, а не выворачивать все наизнанку, добиваясь отсутствия ожиданий. например, ЖКИ 1602 - почти все делают задержки на время, пока контроллер отработает команду, в то время как есть флаг готовности дисплея, и ждать его как раз вполне уместно в тупом цикле.Ярослав555 писал(а):А while(IsReady()) это тупо простаивание пока интерфейс тупит.
минус - если ЖКИ сдох, ожидание не кончится, ну так это вопрос другого порядка - можно в том же цикле и таймер контролировать, чтобы таймаут ожидания обработать...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Нескольно простых вопросов о программировании AVR на Си.
Почему-то используя пару библиотек чужих, у меня для того, чтобы вывести переменную на ЖКИ, которая просто по кругу считает до 255 ушло почти 2 кБайта! ДВА!
Похоже на ассемблере у меня это заняло ну байт 700. И то это преувеличено.
Похоже на ассемблере у меня это заняло ну байт 700. И то это преувеличено.
Станислав
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
ARV, нормальные разработчики минимизируют прерывания, а вы наоборот всю полезную работу в прерывания пихаете.
Re: Нескольно простых вопросов о программировании AVR на Си.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3289779#p3289779"]Почему-то используя пару библиотек чужих, у меня для того, чтобы вывести переменную на ЖКИ, которая просто по кругу считает до 255 ушло почти 2 кБайта! ДВА![/uquote]
Известное дело - если глянуть в map файл то вполне может оказаться, что килобайта полтора под какой-нибудь sprintf с его форматтерами захапано.
Не отчаивайтесь - набьёте руку и всё будет красиво получаться.
Известное дело - если глянуть в map файл то вполне может оказаться, что килобайта полтора под какой-нибудь sprintf с его форматтерами захапано.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! 
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
[uquote="Demiurg",url="/forum/viewtopic.php?p=3289785#p3289785"]ARV, нормальные разработчики минимизируют прерывания, а вы наоборот всю полезную работу в прерывания пихаете.[/uquote]
а я не нормальный разработчик. я делаю не для того, чтобы попасть в клан нормальных, а чтобы меньше напрягаться, но достигать нужного эффекта. пока что все объявляемые мною принципы меня никогда не подводили.
Добавлено after 2 minutes 5 seconds:
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3289779#p3289779"]Почему-то используя пару библиотек чужих, у меня для того, чтобы вывести переменную на ЖКИ, которая просто по кругу считает до 255 ушло почти 2 кБайта! ДВА!
Похоже на ассемблере у меня это заняло ну байт 700. И то это преувеличено.[/uquote]что важнее: 2 килобайта или 2 дня вашей жизни?
а я не нормальный разработчик. я делаю не для того, чтобы попасть в клан нормальных, а чтобы меньше напрягаться, но достигать нужного эффекта. пока что все объявляемые мною принципы меня никогда не подводили.
Добавлено after 2 minutes 5 seconds:
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3289779#p3289779"]Почему-то используя пару библиотек чужих, у меня для того, чтобы вывести переменную на ЖКИ, которая просто по кругу считает до 255 ушло почти 2 кБайта! ДВА!
Похоже на ассемблере у меня это заняло ну байт 700. И то это преувеличено.[/uquote]что важнее: 2 килобайта или 2 дня вашей жизни?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
. Вероятно, эти библиотеки какой-нибудь sprintf() используют, вот и вышло так много. Сейчас интереса ради свою проверил библиотечку (на C) - меньше 550 байтов вышло. Правда, я там схалтурил - бит занятности не проверяю, тупая задержка в 100мкс.СКАЗОЧНИК писал(а):используя пару библиотек чужих, у меня для того, чтобы вывести переменную на ЖКИ, которая просто по кругу считает до 255 ушло почти 2 кБайта! ДВА!
Похоже на ассемблере у меня это заняло ну байт 700
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
ARV, если вы "неформал", так сказать, то это сугубо ваше дело. Все эти "прическа", металлические заклепки, пирсинг. Но вы свой советы даете новичкам. Они и так опрос кнопок не могут освоить, и тут вы еще со своими советами, как пирсинг прокалывать.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
я никогда не даю вредных советов. или предупреждаю, что совет вредный, если вдруг приходится таковой давать.Demiurg писал(а):Но вы свой советы даете новичкам. Они и так опрос кнопок не могут освоить, и тут вы еще со своими советами, как пирсинг прокалывать.
всегда во всем придерживаюсь принципа бритвы Оккама: если без чего-то можно обойтись, то без этого нужно обойтись. если задача решается легко и просто "на тупых задержках" - я так и делаю, и советую так делать другим. если задача решается легко "напрерываниях" - снова поступаю так же. и никогда не терзаюсь вопросом, как же "правильно" поступить в том или ином случае - именно так, как я поступаю, так и правильно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
[uquote="ARV",url="/forum/viewtopic.php?p=3289953#p3289953"][uquote="Demiurg",url="/forum/viewtopic.php?p=3289785#p3289785"]ARV, нормальные разработчики минимизируют прерывания, а вы наоборот всю полезную работу в прерывания пихаете.[/uquote]
а я не нормальный разработчик. я делаю не для того, чтобы попасть в клан нормальных, а чтобы меньше напрягаться, но достигать нужного эффекта. пока что все объявляемые мною принципы меня никогда не подводили.[/uquote]
Вам нужно поменять свои принципы, так как они очень плохие и не ведут к успеху. Это иллюзия и оправдание на потраченное время в никуда. Только напрягаясь можно добиться успеха.
Добавлено after 6 minutes 50 seconds:
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3289779#p3289779"]Почему-то используя пару библиотек чужих, у меня для того, чтобы вывести переменную на ЖКИ, которая просто по кругу считает до 255 ушло почти 2 кБайта! ДВА!
Похоже на ассемблере у меня это заняло ну байт 700. И то это преувеличено.[/uquote]
Давайте разбираться если интересно.
а я не нормальный разработчик. я делаю не для того, чтобы попасть в клан нормальных, а чтобы меньше напрягаться, но достигать нужного эффекта. пока что все объявляемые мною принципы меня никогда не подводили.[/uquote]
Вам нужно поменять свои принципы, так как они очень плохие и не ведут к успеху. Это иллюзия и оправдание на потраченное время в никуда. Только напрягаясь можно добиться успеха.
Добавлено after 6 minutes 50 seconds:
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3289779#p3289779"]Почему-то используя пару библиотек чужих, у меня для того, чтобы вывести переменную на ЖКИ, которая просто по кругу считает до 255 ушло почти 2 кБайта! ДВА!
Похоже на ассемблере у меня это заняло ну байт 700. И то это преувеличено.[/uquote]
Давайте разбираться если интересно.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Нескольно простых вопросов о программировании AVR на Си.
Вообще-то интерес есть.
Две библиотеки с сайта ЧипЕнейбл.Ру. Одна для подключения ЖКИ 1602, вторая для вывода на него переменных BCD, т.е. число преобразует в символы, чтобы можно было отобразить.
Обе библиотеки написаны кроссплатформено. (GCC, IAR, CV). Написаны с условной компиляцией (препроцессор что ли называется...
), где при компиляции выбирается что нужно, то и компилится. Это я в хидерах смотрел.
Сами файлы с расширением .с смотрел частично, ибо втыкать в чужую (даже красивую) писанину еще тяжеленько мне.
Где до меня дошло, там добавил чуток к определению переменных (типа unsigned), а где-то закомментировал. Ну, чтобы Ворнинги не выдавало.
Компилируется нормально, но только один раз. Второй раз выдает ошибку, какую, понять не могу, т.к. АВРСтудия пишет эту ошибку на иероглифах...
Только пути показывает к файлам с расширением .о
Если все эти файлы из проекта удалить, то снова компилирует, пока опять не удалишь.
Тем не менее, прошивка в реальный контроллер заливается и работает!
МК у меня АТМЕГА16 в ДИПкорпусе. Протеуса нету.
Только что переустановил систему и не ставил его еще.
Да, АВРСтудия у меня 4.19
Вот тут взял библиотеку для Дисплея:
http://chipenable.ru/index.php/programm ... oteka.html
Вот тут взял перевод чисел:
http://chipenable.ru/index.php/programm ... 2-bcd.html
Вот архив проекта.
Две библиотеки с сайта ЧипЕнейбл.Ру. Одна для подключения ЖКИ 1602, вторая для вывода на него переменных BCD, т.е. число преобразует в символы, чтобы можно было отобразить.
Обе библиотеки написаны кроссплатформено. (GCC, IAR, CV). Написаны с условной компиляцией (препроцессор что ли называется...
Сами файлы с расширением .с смотрел частично, ибо втыкать в чужую (даже красивую) писанину еще тяжеленько мне.
Где до меня дошло, там добавил чуток к определению переменных (типа unsigned), а где-то закомментировал. Ну, чтобы Ворнинги не выдавало.
Компилируется нормально, но только один раз. Второй раз выдает ошибку, какую, понять не могу, т.к. АВРСтудия пишет эту ошибку на иероглифах...
Если все эти файлы из проекта удалить, то снова компилирует, пока опять не удалишь.
Тем не менее, прошивка в реальный контроллер заливается и работает!
МК у меня АТМЕГА16 в ДИПкорпусе. Протеуса нету.
Да, АВРСтудия у меня 4.19
Вот тут взял библиотеку для Дисплея:
http://chipenable.ru/index.php/programm ... oteka.html
Вот тут взял перевод чисел:
http://chipenable.ru/index.php/programm ... 2-bcd.html
Вот архив проекта.
- Вложения
-
- KOTEL.7z
- (20.38 КБ) 228 скачиваний
Последний раз редактировалось СКАЗОЧНИК Вт янв 23, 2018 08:28:57, всего редактировалось 1 раз.
Станислав
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3289019#p3289019"]
Уродский этот Си с его уродскими библиотеками и объявлениями. Вообще идиотский язык программирования.
Три дня уже пытаюсь дисплей запустить, все почем зря.
Переставишь пару библиотек местами - компилится. Не переставишь - кучу ошибок выдает. Но не так ни так не работает!
Да еще и чтобы что-то применить - надо знать какую библиотеку, где и когда врубить! А еще и во всех нахрен файлах ее прописать.
Зачем же мне тогда подключать библиотеку с функциями переворачивания байта, библиотеку задержек, прерываний, вводов/выводов, если можно подключить целиком библиотеку работы с дисплеем?
Уже сделал среди кода включения светодиода контрольного, чтобы видеть, где у меня код висит, так он повис у меня в месте ожидания флага готовности дисплея. Тупо. Потому что почему-то у меня этот флаг читаться начинает раньше, чем идет инициализация дисплея. Сверху вниз выполняет все функции и все тут.
А если из инициализации вызывать эти функции, то почему-то заваливает ошибками, что не там и не то объявлено.
Как же должно быть, что подключил библиотеку с дисплеем и все! Забыл! Только выводишь на него буквы и все, не заботясь, как он там этот флаг ждет...
[/uquote]
Ну что тут сказать, учиться и учиться. Для облегчения можете выбрать платформу Arduino.
Три дня уже пытаюсь дисплей запустить, все почем зря.
Переставишь пару библиотек местами - компилится. Не переставишь - кучу ошибок выдает. Но не так ни так не работает!
Да еще и чтобы что-то применить - надо знать какую библиотеку, где и когда врубить! А еще и во всех нахрен файлах ее прописать.
Зачем же мне тогда подключать библиотеку с функциями переворачивания байта, библиотеку задержек, прерываний, вводов/выводов, если можно подключить целиком библиотеку работы с дисплеем?
Уже сделал среди кода включения светодиода контрольного, чтобы видеть, где у меня код висит, так он повис у меня в месте ожидания флага готовности дисплея. Тупо. Потому что почему-то у меня этот флаг читаться начинает раньше, чем идет инициализация дисплея. Сверху вниз выполняет все функции и все тут.
А если из инициализации вызывать эти функции, то почему-то заваливает ошибками, что не там и не то объявлено.
Как же должно быть, что подключил библиотеку с дисплеем и все! Забыл! Только выводишь на него буквы и все, не заботясь, как он там этот флаг ждет...
Ну что тут сказать, учиться и учиться. Для облегчения можете выбрать платформу Arduino.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Нескольно простых вопросов о программировании AVR на Си.
позвольте поинтересоваться - для чего мне это нужно? я считаю, что вполне себе неплохо применяю на практике свои принципы, и они ведут к вполне осязаемым "успешным" проектам категории хобби. местами и на сторону получается делать - никто не жаловался.Oxford писал(а):Вам нужно поменять свои принципы, так как они очень плохие и не ведут к успеху. Это иллюзия и оправдание на потраченное время в никуда. Только напрягаясь можно добиться успеха.
в чем вы видите недостатки моих принципов? возможно, я прислушаюсь к советам по существу, а голословные декларации "правильных принципов" слушать смысла нет.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Нескольно простых вопросов о программировании AVR на Си.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3290305#p3290305"]Второй раз выдает ошибку, какую, понять не могу, т.к. АВРСтудия пишет эту ошибку на иероглифах...
Только пути показывает к файлам с расширением .о[/uquote]
Скриншот бы тут помог, я так подозреваю.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3290305#p3290305"]Вот архив проекта.[/uquote]
К чёрту подробности - при всяком недовольстве лишним весом идём смотреть map-файл. Если его нету в папочке с промежуточными файлами компиляции, поищите в настройках проекта как его включить - и он появится и всё вам расскажет. Вам, как ассемблерщику, заглянув туда сразу станет понятно кто виноват и как его наказать.
[uquote="Oxford",url="/forum/viewtopic.php?p=3290294#p3290294"]Вам нужно поменять свои принципы, так как они очень плохие и не ведут к успеху. Это иллюзия и оправдание на потраченное время в никуда. Только напрягаясь можно добиться успеха.[/uquote]
Так говорил ЗаратустраРаботодатель.
Напрягаясь, чаще всего можно только устать. Принцип хорош если он позволяют иметь роскошь тратить основной личный ресурс на "своё здоровье, образование и путешествия".
С битовыми полями-то что решили в итоге?
Скриншот бы тут помог, я так подозреваю.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3290305#p3290305"]Вот архив проекта.[/uquote]
К чёрту подробности - при всяком недовольстве лишним весом идём смотреть map-файл. Если его нету в папочке с промежуточными файлами компиляции, поищите в настройках проекта как его включить - и он появится и всё вам расскажет. Вам, как ассемблерщику, заглянув туда сразу станет понятно кто виноват и как его наказать.
[uquote="Oxford",url="/forum/viewtopic.php?p=3290294#p3290294"]Вам нужно поменять свои принципы, так как они очень плохие и не ведут к успеху. Это иллюзия и оправдание на потраченное время в никуда. Только напрягаясь можно добиться успеха.[/uquote]
Так говорил ЗаратустраРаботодатель.
Напрягаясь, чаще всего можно только устать. Принцип хорош если он позволяют иметь роскошь тратить основной личный ресурс на "своё здоровье, образование и путешествия".
С битовыми полями-то что решили в итоге?
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! 
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Нескольно простых вопросов о программировании AVR на Си.
Вот.

Да и ассемблерщик из меня никакой.
Так, баловался чуток.
Вот Мар файл, и не понятно в нем ниче.
Да и ассемблерщик из меня никакой.
Вот Мар файл, и не понятно в нем ниче.
- Вложения
-
- KOTEL.7z
- (2.12 КБ) 217 скачиваний
Станислав
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: Нескольно простых вопросов о программировании AVR на Си.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3289779#p3289779"]Почему-то используя пару библиотек чужих, у меня для того, чтобы вывести переменную на ЖКИ, которая просто по кругу считает до 255 ушло почти 2 кБайта! ДВА!
Похоже на ассемблере у меня это заняло ну байт 700. И то это преувеличено.[/uquote]
2018й на дворе, как бы. Я вот себе прибор на stm32f103 строю. 64к ОПЕРАТИВКИ, флеша точно не помню, что-то около 382к и тактовая ядра 72МГц.
Подключил помимо стандартных HALовских библиотек и принтфы, и векторы, и string-и. Прога только инициализацию 44780 делает и тестовую строчку выводит, а занимает 30к флеша. И как-бы пофиг - флеш скачкообразно возрастает когда либа подключается, когда наращиваешь код с ее использованием - рост намного меньше (если не инлайнить, конечно). Когда будет готова программа, и мне что-то не понравится в структуре - поменять полчаса. А асму сколько надо перепиливать? А всю структуру проекта в голове держать? И сколько проектов в голове удержите? Было у нас такое на фирме, видали уже: добавить паузу в алгоритм - не! Не вазможна! Так и попрощались с гениальным кадром с многолетним опытом.
Похоже на ассемблере у меня это заняло ну байт 700. И то это преувеличено.[/uquote]
2018й на дворе, как бы. Я вот себе прибор на stm32f103 строю. 64к ОПЕРАТИВКИ, флеша точно не помню, что-то около 382к и тактовая ядра 72МГц.
Подключил помимо стандартных HALовских библиотек и принтфы, и векторы, и string-и. Прога только инициализацию 44780 делает и тестовую строчку выводит, а занимает 30к флеша. И как-бы пофиг - флеш скачкообразно возрастает когда либа подключается, когда наращиваешь код с ее использованием - рост намного меньше (если не инлайнить, конечно). Когда будет готова программа, и мне что-то не понравится в структуре - поменять полчаса. А асму сколько надо перепиливать? А всю структуру проекта в голове держать? И сколько проектов в голове удержите? Было у нас такое на фирме, видали уже: добавить паузу в алгоритм - не! Не вазможна! Так и попрощались с гениальным кадром с многолетним опытом.
Re: Нескольно простых вопросов о программировании AVR на Си.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3290429#p3290429"]Вот.[/uquote]
Локализованное (на русский) сообщение операционной системы, я бы сказал. В мейкфайле вызывается некая системная команда. Тут увы мне сказать дальше нечего - вероятно догадается тот, кто ближе общался с этой системой.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3290429#p3290429"]Да и ассемблерщик из меня никакой.
Так, баловался чуток.[/uquote]
"Взялся за гуж, не говори, что не груздь!"
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3290429#p3290429"]Вот Мар файл, и не понятно в нем ниче.[/uquote]
Ну вот, к примеру. Код функций помещается в сегмент .text, первая колонка - адреса, вторая - размер кода:
Итого - функция main - 112 байт, функции работы с дисплеем - 620 байт, функции BCD (работа с бинарно-кодированными десятичными?) - 1132. Т.е. добрая половина кода ушла на косметическую функцию. Причём ни BCD_Uint ни BCD_Ulong у вас не используются? А их вкомпилировало - поищите в настройках проекта опцию типа "каждая функция в свой сегмент" - чтобы линковшик смог выбрасывать не вызываемое. Да и сам мап-файл может быть и поподробнее - с cross-reference и т.п. полезной информацией - вероятно тоже настраивается где-то.
Локализованное (на русский) сообщение операционной системы, я бы сказал. В мейкфайле вызывается некая системная команда. Тут увы мне сказать дальше нечего - вероятно догадается тот, кто ближе общался с этой системой.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3290429#p3290429"]Да и ассемблерщик из меня никакой.
"Взялся за гуж, не говори, что не груздь!"
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3290429#p3290429"]Вот Мар файл, и не понятно в нем ниче.[/uquote]
Ну вот, к примеру. Код функций помещается в сегмент .text, первая колонка - адреса, вторая - размер кода:
Код: Выделить всё
[...]
.text 0x00000000 0x7c8
[...]
*(.text)
.text 0x00000078 0x4 c:/atmel/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr5/crtm16.o
0x00000078 __vector_1
[...]
0x00000078 __vector_20
.text 0x0000007c 0x70 KOTEL.o
0x0000007c main
.text 0x000000ec 0x26c lcd_lib_2.o
0x000001d2 LCD_WriteComInit
0x00000216 LCD_WriteCom
0x00000236 LCD_WriteData
0x00000256 LCD_Init
0x000002cc LCD_SendStr
0x000002f4 LCD_SendStrFl
0x00000312 LCD_SetUserChar
.text 0x00000358 0x46c bcd.o
0x00000358 BCD_GetPointerBuf
0x0000035e BCD_1
0x00000370 BCD_2
0x0000039c BCD_3
0x000003e6 BCD_3Int
0x00000436 BCD_4Int
0x000004a8 BCD_5Int
0x0000053c BCD_Uchar
0x00000586 BCD_Uint
0x0000061a BCD_Ulong
[...]
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! 


