Нескольно простых вопросов о программировании AVR на Си.

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 93
Зарегистрирован: Пн окт 31, 2016 06:23:19

Сообщение KorbenDallas »

ЛОЛ, народ! Он бы нам еще Манохина припомнил, у которого "на объекте трубы лопнули" и рассказал нам, что "объект" и "индустриальное водоснабжение и канализация" - это не одно и то же.

Сейчас мы с вами наблюдаем, как данный индивидуум исполняет танец пятой точки, свидетельствующий о глубоко запущенной стадии отрицания...
Реклама
Модератор
Аватара пользователя
Сообщения: 19077
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

KorbenDallas, прекращай неудержимый поток оскорблений из своих "лопнувших труб".
если будешь продолжать разговаривать в том же оскорбительном тоне, отправлю в баню попарится и покрутиться на любой из твоих "точек".
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

самоназванный отец оказался просто энциклопедией с вырванными страницами про культуру общения...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
OKF
Это не хвост, это антенна
Сообщения: 1430
Зарегистрирован: Вт июн 07, 2011 08:03:18

Сообщение OKF »

[uquote="Starichok51",url="/forum/viewtopic.php?p=4314601#p4314601"]KorbenDallas, прекращай неудержимый поток оскорблений из своих "лопнувших труб".
если будешь продолжать разговаривать в том же оскорбительном тоне, отправлю в баню попарится и покрутиться на любой из твоих "точек".[/uquote]
Ну да. Прав тот у кого больше прав, не так ли?)
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 6335
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Пресекать поток поливания фекалью - это не только право, это обязанность модератора.
Изображение
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 553
Зарегистрирован: Ср июн 29, 2022 16:25:45

Сообщение Just_Fluffy »

Еще б тему почистить, где-то с 61 страницы.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Реклама
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4314922#p4314922"]Еще б тему почистить[/uquote] Насрали пунктиром, тяжело вычищать какахи.
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 25
Зарегистрирован: Чт авг 27, 2020 13:15:49

Сообщение dibor »

Может лучше про реактор?
Про любимый лунный трактор
... ?
Открыл глаза
Сообщения: 60
Зарегистрирован: Вс ноя 13, 2022 14:58:17

Сообщение Bill_ »

[uquote="zero648",url="/forum/viewtopic.php?p=1985034#p1985034"]
Не происходит в этих операциях никаких сдвигов.
Здрасте, приехали..., а что тогда означают стрелки ">>" и "<<", если подумать логически? Это и есть сдвиг, и двигает это все препроцессор, в результате всех логических операций в выражении, согласно приоритетам, получается некое число, которое и присваивается в конечном итоге операнду.
Запись (1 << RS) означает, что в бит RS (который должен быть определен заранее) заносится лог.1
Интересно, что произойдет, если записать так (0b101<<RS)?, получается, что в бит RS Я могу запихать такое число? Как раз эта запись означает сдвинуть число 0b101 влево на RS бит.[/uquote]
На самом деле в действительности в данном случае сдвигов никаких нет, и препроцессор тут совершенно ни причём. Препроцессор тупо заменяет одну строку текста на другую и передаёт результат компилятору. Компилятор в свою очередь вычисляет полученное выражение (т.е. выполняет так называемую свёртку констант). Сдвиги выполняются во время свёртки. Если RS есть символическое определение константы, результат также будет константой.
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вс мар 27, 2022 09:38:17

Сообщение aleksey chilov »

Здравствуйте!
Вопрос такой.
Имеется небольшой проект на Atmega 8
с выводом информации на LCD 1602 Китайский.
Проблема возникла с выводом дробного числа через utoa
результата работы ADC.
Подскажите как правильно с числами работать с дробью.
Памяти то тут не очень.
utoa видимо не умеет выводить дробные. А других я не знаю.
Вложения
2.jpg
(62.58 КБ) 75 скачиваний
1.jpg
(137.83 КБ) 79 скачиваний
Вымогатель припоя
Аватара пользователя
Сообщения: 553
Зарегистрирован: Ср июн 29, 2022 16:25:45

Сообщение Just_Fluffy »

aleksey chilov, <<utoa>> это unsigned integer to string.
Пользуйте sprintf() - см. например https://www.microchip.com/forums/m293227.aspx

Ну а вообще - 8битные AVR и float - слабосовместимые вещи. Не, ну если реально надо - то надо.
Но иногда проще и даже быстрее умножить значение на 10,100, 1000 - зависит от того, скока надо точности после запятой - это значение в целочисленной арифметике преобразовать в строку, а потом ручками поставить там точку в нужном месте.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Опытный кот
Аватара пользователя
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Сообщение MLX90640 »

Во-первых, есть ftoa - флоаты в строку. Во-вторых, более экономичное решение - вывести сначала целую часть, затем поставить десятичную точку и вывести дробную часть.
Вымогатель припоя
Аватара пользователя
Сообщения: 553
Зарегистрирован: Ср июн 29, 2022 16:25:45

Сообщение Just_Fluffy »

MLX90640, Ну я несколько сумбурно описала. Но имела ввиду то же самое.
Получить из флоата целую и дробную часть - не сложно. Но это математика с плавающей запятой. Лучше вообще на АВРке уйти от float. В подавляющем большинстве случаев можно уйти на целочисленную арифметику, умножив данные на какую то константу (в зависимости от требуемой точности).

У aleksey chilov, судя по скринам, результат АЦП (uint) множится на некие коэффициенты и делится на 1024.
Там вообще float не нужен, ибо при всей широте задачи результат - это 1024 константы - по разрядности АЦП. И можно подобрать коэффициенты так, что б математика была простая.

Как самый простой вариант "в лоб" - результат АЦП дополнительно умножить на 100 и на эти коэффициенты. Прибавить 1024/2 (для округления) и разделить на 1024.
Получим какое то целое число, в 100 раз большее нужного нам.
Дальше или в строку его и вставить точку, либо целочисленно разделить на 100, напечатать целую часть, потом точку, потом остаток от деления на 100.
Тут минус - таки есть деление на 100, что для АВР не лучший ход, и нужно, возможно, использовать 32 бита целочисленную переменную.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4323700#p4323700"]8битные AVR и float - слабосовместимые вещи[/uquote]
а миллионы ардуинщиков-то и не знают...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 553
Зарегистрирован: Ср июн 29, 2022 16:25:45

Сообщение Just_Fluffy »

ARV, ну нашли на кого равняться.... :) :) :) Миллионы абдуринщиков иногда даже не знают, что умеет их конкретно взятая абдурина. Им не надо. DigitalWrite - и погнали ногодрыгать.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вс мар 27, 2022 09:38:17

Сообщение aleksey chilov »

Проблема разрешилаь очень просто. Применил остаток от деления %. И потом положил в массив. Точку тоже положил в массив куда мне нужно. Ну а
дальше вывел как простую строчку. Получилось прикольно!
Ну признаться посмотрел на форуме там приводился пример подобных действий,я применил его,
я такую разбивку применял только по 7seg indication тоже нормально работает.
Вложения
2.png
(58.04 КБ) 77 скачиваний
1.png
(93.02 КБ) 82 скачивания
Опытный кот
Аватара пользователя
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Сообщение MLX90640 »

"VRACHENIE V LEVO" :))) Во-первых, "влево" пишется слитно. Во-вторых, либо пишите на человеческом английском "Left Roration", либо используйте русские буквыы в дисплее, он может писать кириллическими символами, они есть в таблице.
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вс мар 27, 2022 09:38:17

Сообщение aleksey chilov »

Да не прикалывайтесь. Набрасывал как удобно. Потом по пробую кириллицу прикрутить.
Вчера в интернете нашёл библиотеку допиленную. Кто-то делал. Ну если памяти хватит.
У этих Atmeg мало памяти. Пока только управление шим,обработчик кнопок, LCD и уже 27% схавано.

Добавлено after 54 seconds:
Наверное не умею грамотно кодить.
Вложения
11.png
(55.02 КБ) 72 скачивания
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

aleksey chilov, в интернете полным-полно разнообразных готовых шрифтов. Я у одного человека утащил удобный набор макросов и шрифт, часть нужного дорисовал, вот, например. Таблица перекодировки позволяет не тратить понапрасну память на неиспользуемые символы (все равно обычно все 224 символа не нужны). Вот так, например, выглядит объявление буквы Щ:

Код: Выделить всё

          14,
          ________,________,
          ________,________,
          XX___XX_,__XX____,
          XX___XX_,__XX____,
          XX___XX_,__XX____,
          XX___XX_,__XX____,
          XX___XX_,__XX____,
          XX___XX_,__XX____,
          XX___XX_,__XX____,
          XX___XX_,__XX____,
          XX___XX_,__XX____,
          XX___XX_,__XX____,
          XXXXXXXX,XXXXX___,
          XXXXXXXX,XXXXX___,
          ________,___XX___,
          ________,___XX___
А таблица перекодировки позволяет легко в любую кодировку преобразовать, если КОИ8-Р не нравится.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4323846#p4323846"]ARV, ну нашли на кого равняться.... :) :) :) Миллионы абдуринщиков иногда даже не знают, что умеет их конкретно взятая абдурина. Им не надо. DigitalWrite - и погнали ногодрыгать.[/uquote]так те, кто не знает о плохой совместимости float с AVR, почему-то горя не знают, а те, кто знает - мучаются... какой же вывод надо сделать?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Ответить

Вернуться в «AVR»