#1 2025-03-02 20:16:56

vigor53
Учасник
Зареєстрований: 2015-11-15
Повідомлень: 16

Ошибка компиляции

GENERATOR.zipПрошу помощи - при компиляции скетча пишет ошибка компиляции.
Перебрал все библиотеки , но не могу найти где ошибка .
Скрин прилагаю - может кто заметит где проблема.

Неактивний

#2 2025-03-02 20:49:40

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 287

Re: Ошибка компиляции

vigor53 пише:

Прошу помощи - при компиляции скетча пишет ошибка компиляции.

Для початку скопіюйте текст помилки і вставте у повідомлення текстом. Також бажано код вставити текстом, щоб було, зрозуміло де в коді який номер рядка.
Ще би бажано описати, яке призначення вашого коду, що ви намагаєтесь реалізувати.
Так більше шансів отримати допомогу.

Активний

#3 2025-03-02 21:02:13

jokeer
Гість

Re: Ошибка компиляции

Як би ви самі відповіли на ваше питання? Кинулися розпаковувати якісь архіви, встановлювати якісь бібліотеки.. Воно вам треба?
Сподіваюсь, намьок понятний? wink
ЗІ якщо текст помилки вставити в гуглопошук, можна отримати відповідь.

#4 2025-03-02 21:34:21

vigor53
Учасник
Зареєстрований: 2015-11-15
Повідомлень: 16

Re: Ошибка компиляции

Это скетч для генератора на AD9850 c дисплеем OLED I2C

"exit status 1 ошибка компиляции для платы Arduino NANO"
больше ошибок не находит , было несколько но я нашел причину

GOOGLE- отвечает" Сообщение «exit status 1» при компиляции Arduino означает, что процесс компиляции завершился с ошибкой. Причин этому может быть огромное множество"
Далее- это появляется при проверке кода , значит порт и плата не подключена - но выбрана в инструментах правильно .
Как вставить код в тексте - подскажите
ссылка - https://github.com/sv1onw/VFO_9850_v4.3/blob/master/VFO_9850_v4.3.ino

вот что выходит:oshibka-kompiljacii.png

Остання редакція vigor53 (2025-03-02 21:39:14)

Неактивний

#5 2025-03-02 21:49:50

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 287

Re: Ошибка компиляции

vigor53 пише:

"exit status 1 ошибка компиляции для платы Arduino NANO"

Ви користуєтесь Arduino IDE? Зайдіть у налаштування та увімкніть "Show verbose output during: compile". Я х.з. як воно в локалізованому варіанті, щось типу "Показывать подробный вывод при: компиляции".

vigor53 пише:

Как вставить код в тексте - подскажите

Тег

[code]
[==C++==]

тут ваш код

[/code]

https://forum.arduino.ua/help.php#bbcode

Активний

#6 2025-03-02 21:54:19

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 287

Re: Ошибка компиляции

vigor53 пише:

вот что выходит:https://forum.arduino.ua/img/members/373/oshibka-kompiljacii.png

Так схоже, що бібліотека з ADS9850 у вас не встановлена. Лінкер не знаходить, звідки брати ті функції. До компіляції це не має відношення.

Активний

#7 2025-03-02 22:00:38

vigor53
Учасник
Зареєстрований: 2015-11-15
Повідомлень: 16

Re: Ошибка компиляции

Вывод при компиляции - включен , сейчас перепроверю ADS библиотеку.... Хотя - выпадала ощобка про "ADS9850.h"
я вставил файл который скачал с github - и она ушла .Проверю

Остання редакція vigor53 (2025-03-02 22:02:59)

Неактивний

#8 2025-03-02 22:14:31

vigor53
Учасник
Зареєстрований: 2015-11-15
Повідомлень: 16

Re: Ошибка компиляции

Вот интересно - добавил файл в прект - ADS9850.cpp  и скомпилировалось ! Буду завтра в железе проверять...
Спасибо за подсказки smile

Остання редакція vigor53 (2025-03-02 22:17:37)

Неактивний

#9 2025-03-03 00:05:56

jokeer
Гість

Re: Ошибка компиляции

як правило, коли бібліотека встановлена через менеджер бібліотек, всі необхідні файли копіюються куди треба.

#10 2025-03-07 11:04:09

vigor53
Учасник
Зареєстрований: 2015-11-15
Повідомлень: 16

Re: Ошибка компиляции

Доброго всем здоровья!
Просветите пожалуйста строчка в коде что означает  4000000.0F

#define resistorValue  4000000.0F   // change this to whatever resistor value you are using

Неактивний

#11 2025-03-07 12:38:24

Honey
Учасник
З Київ
Зареєстрований: 2020-09-26
Повідомлень: 440

Re: Ошибка компиляции

vigor53 пише:

Доброго всем здоровья!
Просветите пожалуйста строчка в коде что означает  4000000.0F

#define resistorValue  4000000.0F   // change this to whatever resistor value you are using

F - суфікс для константи типу float
https://en.wikipedia.org/wiki/C_data_types

Неактивний

#12 2025-03-07 17:42:33

vigor53
Учасник
Зареєстрований: 2015-11-15
Повідомлень: 16

Re: Ошибка компиляции

Я так понял что это величина какого то резистора в цепи , вот это и интересно как понять что за величина ?

Неактивний

#13 2025-03-07 18:37:49

Васятко
Гість

Re: Ошибка компиляции

vigor53 пише:

Я что за величина ?

4 МОм

#14 2025-03-07 19:55:54

jokeer
Гість

Re: Ошибка компиляции

Ну так то дохрєніща. Виглядає як помилка.

#15 2025-03-07 20:11:03

Васятко
Гість

Re: Ошибка компиляции

jokeer пише:

Ну так то дохрєніща.

Ну так ні схеми ні коду. Хто його знає що то за резистор....

#16 2025-03-08 00:09:57

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 287

Re: Ошибка компиляции

Це з Capacitance Meter Example - спроба вимірювати ємність за постійною часу.

Активний

#17 2025-03-08 00:23:19

jokeer
Гість

Re: Ошибка компиляции

1. Резисторів на 4 МОм не буває wink
2. To put it shortly, the ADC needs to see source impedance of 10 kilo-ohms or less for accurate results.
Якщо там в схемі немає операційного підсилювача - хз що воно там наміряє.

#18 2025-03-08 00:43:36

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 287

Re: Ошибка компиляции

jokeer пише:

1. Резисторів на 4 МОм не буває wink

4.02 МОм, відхилення менше 1%. В ряді E48 можуть попадатись і практично точні 4 МОм.
Або 2×2 МОм послідовно.

jokeer пише:

2. To put it shortly, the ADC needs to see source impedance of 10 kilo-ohms or less for accurate results.

То трохи з іншої опери. Тут source - це сам конденсатор, його impedance в першому наближенні прямує до нуля. А вхідний опір піна у атмеги - порядка сотень МОм. Так що метод робочий, в межах точності таймера та АЦП.

Мене більше приколює, що вони привʼязались до рівня саме 63.2%, хоча можна брати будь-який поріг, наприклад 1/2.

Активний

#19 2025-03-08 01:00:07

jokeer
Гість

Re: Ошибка компиляции

Якщо не помиляюсь, adc там досить неочевидно влаштований, не схоже на ідеальний вимірювач напруги з безкінечним опором. А рівень порогу, скоріше за все, пов'язаний з тим що конденсатор розряджається не лінійно, чим далі, тим швидкість розряду менше і гірше точність.

#20 2025-03-08 01:34:19

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 287

Re: Ошибка компиляции

jokeer пише:

Якщо не помиляюсь, adc там досить неочевидно влаштований, не схоже на ідеальний вимірювач напруги з безкінечним опором.

Ніякий практичний ADC не є ідеальним вимірювачем напруги з бескінечним опором. Там звичайний ADC послідовного наближення. Вимога до source impedance взята з даташиту, наприклад для Atmega328P в 23.6.1:

The ADC is optimized for analog signals with an output impedance of approximately 10kΩ or less. If such a source is used, the sampling time will be negligible. If a source with higher impedance is used, the sampling time will depend on how long time the source needs to charge the S/H capacitor, with can vary widely. The user is recommended to only use low impedance sources with slowly varying signals, since this minimizes the required charge transfer to the S/H capacitor.

S/H capacitor там намальований 14 pF, так що коли вимірювана ємність на пару порядків більше, то цей ефект практично не має впливати.

Взагалі замість АЦП можна було би і аналоговий компаратор використати.

jokeer пише:

А рівень порогу, скоріше за все, пов'язаний з тим що конденсатор розряджається не лінійно, чим далі, тим швидкість розряду менше і гірше точність.

Та впевнений, що вони тупо взяли визначення постійної часу і переписали формулу відносно C, не вникаючи, звідки ті 63.2% там взялись.

Остання редакція dimich (2025-03-08 01:35:13)

Активний

#21 2025-03-08 10:22:42

jokeer
Гість

Re: Ошибка компиляции

В тестері Маркуса, якщо не помиляюсь, резистор на порядок менший.

#22 2025-03-08 14:29:19

vigor53
Учасник
Зареєстрований: 2015-11-15
Повідомлень: 16

Re: Ошибка компиляции

Schematic_L_C-Meter_2023-07-16.jpegSchematic_L_C-Meter_2023-07-16.jpegLC_Meter2_T.zipЗдравствуйте Уважаемые !  Извините сразу не мог отвечать...
Тестер LC взят из ютуба уже давно - но руки дошли только сейчас. Схема рабочая - прверил ...

только вот не совсем устраивает  пределы показаний.
По поводу сопротивления - в одной из радакции скетча  прописывется 1000000.0F - это правильно
Показания соответствуют реальности .
НО ! Менее чем 0.01 nf - прибор не меряет , после проб и ошибок нашел как умеьшть значения.
Только теперь есмкость "152" - он измеряет как 1-2 так и выдается на дисплей, то есть не 1,50

... А так прибор достаточно простой и надежный. Да вот еще - после некоторого времени работы

перестает измерять - приходтся перегружать, но это не критично.

Остання редакція vigor53 (2025-03-08 14:37:14)

Неактивний

#23 2025-03-08 19:18:05

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 287

Re: Ошибка компиляции

vigor53 пише:

По поводу сопротивления - в одной из радакции скетча  прописывется 1000000.0F - это правильно
Показания соответствуют реальности .
НО ! Менее чем 0.01 nf - прибор не меряет

Так у вас час вимірюється з гранулярністю 1 мс. При опорі 1 МОм це відповідає ємності 1 нФ. Тобто якщо наміряли 1 мс, то ємність може бути десь від 0 до 2 нФ, якщо наміряли 2 мс, то ємність десь між 1 і 3 нФ.

Це якби в millis() не було джиттера. В 16МГц ардуіно millis() оновлюється з частотою ≈976 Гц, тобто спочатку відстає від реального, потім стрибком "наздоганяє". Крім того, час вимірювання АЦП також вносить похибку.

Такий метод дозволяє приблизно оцінити порядок величини ємності, але аж ніяк не вимірювати нанофаради.

vigor53 пише:

после проб и ошибок нашел как умеьшть значения.

Збільшення опору резистора в 4 рази теоретично збільшує роздільну здатність в 4 рази. Але тільки теоретично. Дивіться коментар вище щодо sample and hold конденсатора в АЦП. Ні про які 0.01 нФ (10 пФ) не може бути мови.

Можна було би заміряти час за допомогою micros() із вимкненими перериваннями. Але все одно, на малих ємностях S/H конденсатор в АЦП уже впливатиме.

По-хорошому, потрібно використовувати capture event в TIMER1 і аналоговий компаратор.

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

vigor53 пише:

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

Якась взаємовиключна характеристика hmm Надійний прилад не перестає вимірювати після якогось часу роботи.

Щоби погратись і повчитись - звісно, ок. Якщо задача вимірювати ємності, то придбайте нормальний прилад.

Активний

#24 2025-03-08 20:26:32

jokeer
Гість

Re: Ошибка компиляции

Це точно один з варіантів тестера Маркуса (гуглиться, якщо що). Ми ж не очікуємо, що штука ціною в 4 бакси повністю еквівалентна штуці за 400 баксів?

#25 2025-03-08 20:50:09

vigor53
Учасник
Зареєстрований: 2015-11-15
Повідомлень: 16

Re: Ошибка компиляции

Ошибся в написании - не 0,01 nf а 0,01 mF то есть не меряет менее 10000 pF

Остання редакція vigor53 (2025-03-08 20:51:10)

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму