Обсуждаем контроллеры компании Atmel.
Чт апр 12, 2018 21:18:11
Доброе время. Делаю вольт-омметр на attiny861a . Настроил ацп на внешнее напряжение 2.5в . Т.к. в 861 нет usart , решил выводить результаты на lcd дисплей.
Всё настроел , начинаю проверку и начал выводится бред.
При отсутствии напряжения 0 , при подаче -10240 .
Как я понял это из-за неправильного перевода дроби в строку. Но при всех попытках это наилучший результат.
Проект прилагаю.
- Вложения
-
- Project_1.rar
- (50.62 KiB) Скачиваний: 228
Чт апр 12, 2018 22:13:55
Если Вам лень выложить код сюда , конечно правильно оформив, в нужные тэги, не весь, а только проблемное и под спойлер с пояснениями, то почему будет не лень другим читать Ваш проект? Я так думаю, что очень большая часть формчан не будет его смотреть. Это дело Ваше конечно, так, совет.
Вопрос. В каком диапазоне ожидаемый результат ? То есть, зачем Вам float? Код Ваш не смотрел.
Пт апр 13, 2018 05:23:20
лучше использовать целые числа, а запятую держать "в уме" (и рисовать на дисплее принудительно) т.е. 162 это 1.62в например,
причём желательно (особенно если результат пойдёт на табло) чтобы такая кратность получалась уже при выходе с АЦП (резистивными делителями на входе) тогда не будет эффекта что счётчик проскакивает показания (например 1.62в затем 1.64в, а 1.63 не покажет ни при каких входных напряжениях)
Добавлено after 41 minute 5 seconds:даже лучше начать с диапазона (сначала очертить границы, чтобы расстояние между ними было кратно 1000-1023 ("хвосты" можно не отображать), и вот на эту кратность и домножать результаты измерения.
ПС. код пока не смотрел
(посмотрю в течение часа).
Добавлено after 43 minutes 38 seconds:посмотрел. А что, резисторы у Вас "на горячую" меняются? - почему под них переменные выделены? не проще их задефайнить?
Добавлено after 1 minute 1 second:ничего, такого, что бы могло потребовать плавающей точки не вижу...
Пт апр 13, 2018 06:06:38
Спойлер
лучше использовать целые числа, а запятую держать "в уме" (и рисовать на дисплее принудительно) т.е. 162 это 1.62в например,
причём желательно (особенно если результат пойдёт на табло) чтобы такая кратность получалась уже при выходе с АЦП (резистивными делителями на входе) тогда не будет эффекта что счётчик проскакивает показания (например 1.62в затем 1.64в, а 1.63 не покажет ни при каких входных напряжениях)
Добавлено after 41 minute 5 seconds:
даже лучше начать с диапазона (сначала очертить границы, чтобы расстояние между ними было кратно 1000-1023 ("хвосты" можно не отображать), и вот на эту кратность и домножать результаты измерения.
ПС. код пока не смотрел (посмотрю в течение часа).
Добавлено after 43 minutes 38 seconds:
посмотрел. А что, резисторы у Вас "на горячую" меняются? - почему под них переменные выделены? не проще их задефайнить?
Добавлено after 1 minute 1 second:
ничего, такого, что бы могло потребовать плавающей точки не вижу...Не стоит перед сном , вспоминал схему подключения и не туда напряжение подавал. Сейчас работает
Пт апр 13, 2018 06:25:39
я не говорю, что работать не будет, я говорю, что флоат там - лишнее: и места больше занимает и обсчитывать тяжелее
Пт апр 13, 2018 07:53:09
я не говорю, что работать не будет, я говорю, что флоат там - лишнее: и места больше занимает и обсчитывать тяжелее
Тогда такой вопрос , как с опорным напряжением 2.5в получить входное напряжение не используя тип float ? Все примеры что видел использовали его.
Пт апр 13, 2018 08:00:18
Если Вы разберете что из себя представляет число с плавающей запятой, то Вы увидите, что основное назначение такого формата - это охватить огромный диапазон. От бесконечно малого числа, до бесконечно большого. "Бесконечно" конечно же не буквально.
Допустим Вам нужен результат от 0 до 500 с двумя знаками после запятой. Тогда вам хватит двухбайтного беззнакового целочисленного формата.
Например число 499,99 отлично будет лежать в памяти как 49999. При выводе на экран не забыть воткнуть в нужное место запятую
Пт апр 13, 2018 08:16:57
Тогда такой вопрос , как с опорным напряжением 2.5в получить входное напряжение не используя тип float ? Все примеры что видел использовали его.
переведите вольты в милливольты, получите 2500 mV. Вполне себе целое число. А про точку вам тут уже сказали
Пт апр 13, 2018 09:07:40
код не смотрел. А что std::to_string(value); уже не работает? У меня выводит....
Пт апр 13, 2018 10:18:49
код не смотрел. А что std::to_string(value); уже не работает? У меня выводит....
В С++17 есть to_chars/from_chars которые не используют локаль, динамически не выделяют память, не бросают исключения. Правда в моем gcc 7.2 их еще нет, ждем gcc 8... А to_string не для эмбедда, там и так наверно килобайт 20 добавится при том, что у TC в тиньке всего 8КБ, причем это при выключенных эксепшенах, т.е. без возможности отлавливать потенциальные ошибки...
Пт апр 13, 2018 11:29:51
В С++17 есть to_chars/from_chars которые не используют локаль, динамически не выделяют память, не бросают исключения. Правда в моем gcc 7.2 их еще нет, ждем gcc 8... А to_string не для эмбедда, там и так наверно килобайт 20 добавится при том, что у TC в тиньке всего 8КБ, причем это при выключенных эксепшенах, т.е. без возможности отлавливать потенциальные ошибки...
Ну у меня флеша в чипе 256к
А так - можно и ручками процедурку написать, делал в одном проекте.
Сб апр 14, 2018 16:54:47
мда , ну и нафиг эту тини , ацп сгорел непонятно как. То есть всё работало , вырубил , включил ещё раз всегда приходит значение 1023.
Сб апр 14, 2018 19:09:08
мда , ну и нафиг эту тини , ацп сгорел непонятно как. То есть всё работало , вырубил , включил ещё раз всегда приходит значение 1023.
думаете ацп в "не тини" не сгорел бы?
Вс апр 15, 2018 12:58:01
Ярослав555,
Вопрос в другом состоит : 1) Почему ? В действительности ничего выше напряжения питания не подавал . 2) Уже не вижу смысла делать , выбрал тини 861 только из-за размеров , но когда ацп сдох , покупать ещё 1 не охото т.к. цена в местном чип и дипе на неё выше чем на мегу328.
Вс апр 15, 2018 14:15:29
1) Почему ? В действительности ничего выше напряжения питания не подавал .
1. Статический заряд накопленный в теле от одежды.
2. От чего питаем схему?
Вс апр 15, 2018 15:50:34
1. Статический заряд накопленный в теле от одежды.
2. От чего питаем схему?
От usbasp , разве от статики не должна была выйти из строя вся тини ?
Вс апр 15, 2018 16:03:12
От usbasp , разве от статики не должна была выйти из строя вся тини ?
А это как повезет.
А розетка имеет контакт заземления? 110В с корпуса системника на землю сняты? или болтаются на минусовом проводе, а Вы пальцем ткнули и сожгли вход АЦП?
Вс апр 15, 2018 16:10:29
А это как повезет.
А розетка имеет контакт заземления? 110В с корпуса системника на землю сняты? или болтаются на минусовом проводе, а Вы пальцем ткнули и сожгли вход АЦП?
Вот не знаю всё работало , решил передохнуть , отрубил её , минут через 30 включаю , а ацп мёртв.
Вс апр 15, 2018 16:29:42
Ничего - это только начало. Сколько еще спаленых микрух впереди
. Я недавно случайно разрядил кандер с +100В через заземленное жало паяльника. Умерла мега8 в устройстве, мега8 в аспе, алегровский датчик тока (стоит как мега примерно) и вишенкой на торте стал сожженый юсб хаб в мониторе, который по сути спас весь системник. Итого я попал где-то на 1000р. А у Вас тинька какая-то. Радиолюбительство затратная штука - у меня с каждой зп уходит под 2к русскими на радиодетали. А еще иногда покупается инструмент... так что привыкайте)))
Вс апр 15, 2018 18:00:27
Так я и не переживаю , я на прототип приставки системного монитора 2.5к потратил , долбанный чип и дип и их бракованные меги ( лочились во время прошивки) . Сейчас доктор есть , все вернул к жизни.
Просто 1 дело , когда железно сам виноват что прибор сдох , а другое когда оно само сдохло.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.