Arduino IDE в вопросах и ответах
-
ded4141
- Родился
- Сообщения: 4
- Зарегистрирован: Пт апр 11, 2008 07:11:16
- Откуда: Ижевск
- Контактная информация:
Re: Arduino IDE в вопросах и ответах
Привет всем.
Прошу помощи разобраться с программой. Делаю поиск DS18B20, IDE 1.8.19 контроллер ATTIny85, проверяю в Proteus-е. Все компилится и идет поиск если строка 190 или 191 закоментированы, но если разкоментировать одну из них компиляция идет но поиск не проходит.
Прошу помощи разобраться с программой. Делаю поиск DS18B20, IDE 1.8.19 контроллер ATTIny85, проверяю в Proteus-е. Все компилится и идет поиск если строка 190 или 191 закоментированы, но если разкоментировать одну из них компиляция идет но поиск не проходит.
- Вложения
-
- kod.zip
- (222.65 КБ) 96 скачиваний
- Реклама
Re: Arduino IDE в вопросах и ответах
Первое - рекомендую поставитьна вкладке
файл - настройки - сообщения компилятора - "ВСЕ"
это позволит получать деталировку сообщений об ошибках.
Второе... но data у нас тип byte, а результат операции int....
как то неправильно - или делаем приведение к типу byte или вообще по другому делать - есть же и lowByte() и маски со сдвигом...
Вобщем - работаем над ошибками!

файл - настройки - сообщения компилятора - "ВСЕ"
это позволит получать деталировку сообщений об ошибках.
Второе...
Код: Выделить всё
data = data16 & 0xFF;как то неправильно - или делаем приведение к типу byte или вообще по другому делать - есть же и lowByte() и маски со сдвигом...
Вобщем - работаем над ошибками!
Последний раз редактировалось BOB51 Ср ноя 27, 2024 20:36:03, всего редактировалось 1 раз.
-
ded4141
- Родился
- Сообщения: 4
- Зарегистрирован: Пт апр 11, 2008 07:11:16
- Откуда: Ижевск
- Контактная информация:
Re: Arduino IDE в вопросах и ответах
[uquote="BOB51",url="/forum/viewtopic.php?p=4653744#p4653744"]Первое - рекомендую поставитьна вкладке
файл - настройки - сообщения компилятора - "ВСЕ"
это позволит получать деталировку сообщений об ошибках.
Второе... но data у нас тип byte, а результат операции int....
как то неправильно - или делаем приведение к типу byte или вообще по другому делать - сть же и lowByte() и маски со сдвигом...
Вобщем - работаем над ошибками!
[/uquote]
Ничего криминального не заметил, а lowByte() в строке 190 так же запрещает поиск.
файл - настройки - сообщения компилятора - "ВСЕ"
это позволит получать деталировку сообщений об ошибках.
Второе...
Код: Выделить всё
data = data16 & 0xFF;как то неправильно - или делаем приведение к типу byte или вообще по другому делать - сть же и lowByte() и маски со сдвигом...
Вобщем - работаем над ошибками!
Ничего криминального не заметил, а lowByte() в строке 190 так же запрещает поиск.
- Вложения
-
- warning.zip
- (13.39 КБ) 89 скачиваний
Re: Arduino IDE в вопросах и ответах
warning не критическая ошибка, а предупреждение онекорректности.

Re: Arduino IDE в вопросах и ответах
Предупреждение о чём-либо. Необязательно о некорректном.
- Реклама
Re: Arduino IDE в вопросах и ответах
Там вроде "не могу преобразовать" и указана строка где вопрос...
Но компиляцию может и не останавливать - только предупреждение выдаст.
Я с 85й не работал - но Си вроде одинаков для всех...
Предупреждения надо устранять.

Но компиляцию может и не останавливать - только предупреждение выдаст.
Я с 85й не работал - но Си вроде одинаков для всех...
Предупреждения надо устранять.
Re: Arduino IDE в вопросах и ответах
Если говорить вообще о warnings, то не всегда. Они могут быть искусственно вызваны для сообщения-напоминания пользователю о чём-то, кроме того, они могут быть общими, но не относиться именно к данному случаю или быть допустимыми. Для всего этого специально существуют директивы, как генерирующие warnings, так и блокирующие их.
Re: Arduino IDE в вопросах и ответах
Только не в случае с ded4141...
Там простейшая классическая ошибка...
В личке ему ответил, а сейчас и проверил и подтвердил предположение.
Вот только не понимаю - зачем выдумывать то, что уже есть - к примеру та же библиотека OneWire?
Подставляем то, что нам нужно и достаточно.
То же касается и библиотеки для WS28xxx (Adafruit_NeoPixel) эти библиотеки крайне тяжело самоделками на Си заменить(без сишного ассемблера). Разве что с точки самоудовлетворения/самообучения.

Там простейшая классическая ошибка...
В личке ему ответил, а сейчас и проверил и подтвердил предположение.
Вот только не понимаю - зачем выдумывать то, что уже есть - к примеру та же библиотека OneWire?
Подставляем то, что нам нужно и достаточно.
То же касается и библиотеки для WS28xxx (Adafruit_NeoPixel) эти библиотеки крайне тяжело самоделками на Си заменить(без сишного ассемблера). Разве что с точки самоудовлетворения/самообучения.
-
ded4141
- Родился
- Сообщения: 4
- Зарегистрирован: Пт апр 11, 2008 07:11:16
- Откуда: Ижевск
- Контактная информация:
Re: Arduino IDE в вопросах и ответах
[uquote="BOB51",url="/forum/viewtopic.php?p=4653864#p4653864"]Только не в случае с ded4141...
Там простейшая классическая ошибка...
В личке ему ответил, а сейчас и проверил и подтвердил предположение.
Вот только не понимаю - зачем выдумывать то, что уже есть - к примеру та же библиотека OneWire?
Подставляем то, что нам нужно и достаточно.
То же касается и библиотеки для WS28xxx (Adafruit_NeoPixel) эти библиотеки крайне тяжело самоделками на Си заменить(без сишного ассемблера). Разве что с точки самоудовлетворения/самообучения.
[/uquote]
библиотека OneWire не показывает поиск в Proteus, когда подгоняю времена в библиотеке -показывает только один адрес.
Там простейшая классическая ошибка...
В личке ему ответил, а сейчас и проверил и подтвердил предположение.
Вот только не понимаю - зачем выдумывать то, что уже есть - к примеру та же библиотека OneWire?
Подставляем то, что нам нужно и достаточно.
То же касается и библиотеки для WS28xxx (Adafruit_NeoPixel) эти библиотеки крайне тяжело самоделками на Си заменить(без сишного ассемблера). Разве что с точки самоудовлетворения/самообучения.
библиотека OneWire не показывает поиск в Proteus, когда подгоняю времена в библиотеке -показывает только один адрес.
Re: Arduino IDE в вопросах и ответах
А зачем собственно вешать гирлянду из микроLAN на тиньку 85ю (довольно редкую и ценою крокодиловою), если вполне в изобилии нанок и про-мини?
В то же время на практике серийный номер при одиночном датчике штука весьма излишняя.
Да и тестирование на макете гораздо надежнее...
В то же время для "скоростных" протоколов придется использовать GNUasm (это не одно и то же, что avrasm2 в авр студии!), что для простого пользователя таки сложновато.
По интервалам исполнения вопрос весьма сложный - всегда есть определенные отклонения и при изготовлении (кварцев, элементов генератора) и при изменении окружающей температуры плюс "особенности" конкретной программы в конкретном железе. Ежли вписывается в усредненное значение - тогда и работать будет.
В принципе... ежли ужшшш "совсем приперло"... Делаем собственный преобразователь на малолапом МК под ассемблером (в той же авр студио) и стыкуем его с ведущим МК по любому из стандартных протоколов. Обычное дело - самодельный "периферийный контроллер".

В то же время на практике серийный номер при одиночном датчике штука весьма излишняя.
Да и тестирование на макете гораздо надежнее...
В то же время для "скоростных" протоколов придется использовать GNUasm (это не одно и то же, что avrasm2 в авр студии!), что для простого пользователя таки сложновато.
По интервалам исполнения вопрос весьма сложный - всегда есть определенные отклонения и при изготовлении (кварцев, элементов генератора) и при изменении окружающей температуры плюс "особенности" конкретной программы в конкретном железе. Ежли вписывается в усредненное значение - тогда и работать будет.
В принципе... ежли ужшшш "совсем приперло"... Делаем собственный преобразователь на малолапом МК под ассемблером (в той же авр студио) и стыкуем его с ведущим МК по любому из стандартных протоколов. Обычное дело - самодельный "периферийный контроллер".
-
ded4141
- Родился
- Сообщения: 4
- Зарегистрирован: Пт апр 11, 2008 07:11:16
- Откуда: Ижевск
- Контактная информация:
Re: Arduino IDE в вопросах и ответах
[uquote="BOB51",url="/forum/viewtopic.php?p=4654038#p4654038"]А зачем собственно вешать гирлянду из микроLAN на тиньку 85ю (довольно редкую и ценою крокодиловою), если вполне в изобилии нанок и про-мини?
В то же время на практике серийный номер при одиночном датчике штука весьма излишняя.
Да и тестирование на макете гораздо надежнее...
В то же время для "скоростных" протоколов придется использовать GNUasm (это не одно и то же, что avrasm2 в авр студии!), что для простого пользователя таки сложновато.
По интервалам исполнения вопрос весьма сложный - всегда есть определенные отклонения и при изготовлении (кварцев, элементов генератора) и при изменении окружающей температуры плюс "особенности" конкретной программы в конкретном железе. Ежли вписывается в усредненное значение - тогда и работать будет.
В принципе... ежли ужшшш "совсем приперло"... Делаем собственный преобразователь на малолапом МК под ассемблером (в той же авр студио) и стыкуем его с ведущим МК по любому из стандартных протоколов. Обычное дело - самодельный "периферийный контроллер".
[/uquote]
Это первая моя прога в ардуино , тем более наделаны платы и спаяны. Раньше писал по мелочи на Algoritm Builder. Поиск DS написан и четко работает и по UART отправка идет нормально, а вот прием ни в какую. В ардуино UART работает а поиск не идет.
Записал сканер ROM кода -ни в PROTEUS ни в железе. Хотел вычислить адреса датчиков и тупо воткнуть в скетч.
В то же время на практике серийный номер при одиночном датчике штука весьма излишняя.
Да и тестирование на макете гораздо надежнее...
В то же время для "скоростных" протоколов придется использовать GNUasm (это не одно и то же, что avrasm2 в авр студии!), что для простого пользователя таки сложновато.
По интервалам исполнения вопрос весьма сложный - всегда есть определенные отклонения и при изготовлении (кварцев, элементов генератора) и при изменении окружающей температуры плюс "особенности" конкретной программы в конкретном железе. Ежли вписывается в усредненное значение - тогда и работать будет.
В принципе... ежли ужшшш "совсем приперло"... Делаем собственный преобразователь на малолапом МК под ассемблером (в той же авр студио) и стыкуем его с ведущим МК по любому из стандартных протоколов. Обычное дело - самодельный "периферийный контроллер".
Это первая моя прога в ардуино , тем более наделаны платы и спаяны. Раньше писал по мелочи на Algoritm Builder. Поиск DS написан и четко работает и по UART отправка идет нормально, а вот прием ни в какую. В ардуино UART работает а поиск не идет.
Записал сканер ROM кода -ни в PROTEUS ни в железе. Хотел вычислить адреса датчиков и тупо воткнуть в скетч.
Re: Arduino IDE в вопросах и ответах
Собственно никто DSки - термометры не ищет (если речь о search rom) - идет прямое простое считывание данных блокнота с последующей проверкой контрольной суммы.
Или имеется ввиду отзыв "presence pulse" диаграммы обмена?

Да и никто не обязывает использовать все функции библиотеки - выбираем самые необходимые и на их основе дописываем желаемое дополнение уже по своему.

Еще одно замечание по поводу OneWire...
В основном файле *.ino предварительно должны быть объявлены массивы:
byte data[12] - массив данных блокнота(в частном случае только одного ds18b20 data[9]),
и
byte addr[8] - массив адреса/идентификатора - используется в случае необходимости работы с адресами.

Или имеется ввиду отзыв "presence pulse" диаграммы обмена?
Да и никто не обязывает использовать все функции библиотеки - выбираем самые необходимые и на их основе дописываем желаемое дополнение уже по своему.
Еще одно замечание по поводу OneWire...
В основном файле *.ino предварительно должны быть объявлены массивы:
byte data[12] - массив данных блокнота(в частном случае только одного ds18b20 data[9]),
и
byte addr[8] - массив адреса/идентификатора - используется в случае необходимости работы с адресами.
Re: Arduino IDE в вопросах и ответах
Как уговорить Ардуино ИДЕ использовать 16 бит. Подозреваю , что int - 32 битный, поэтому на:
ругается : error: narrowing conversion of '62445' from 'int' to 'int16_t' {aka 'short int'} [-Wnarrowing]
Пробовал варианты, не одновременно :
1)
и
2)
Варианты ругательств :
error: cast from 'const int*' to 'int16_t' {aka 'short int'} loses precision
error: invalid conversion from 'int16_t' {aka 'short int'} to 'const int16_t*' {aka 'const short int*'}
error: ISO C++ forbids declaration of 'int16_t' with no type
error: 'const int int16_t' redeclared as different kind of entity
Забыл главное : RP2040
Код: Выделить всё
const (int16_t )(DATA_16[]={0xf3ed,0xf40a, ...
const int16_t* data_ptr = DATA_16;Пробовал варианты, не одновременно :
1)
Код: Выделить всё
const (int16_t )(DATA_16[]={0xf3ed,0xf40a, ...2)
Код: Выделить всё
const int16_t* data_ptr = (int16_t) (DATA_16);error: cast from 'const int*' to 'int16_t' {aka 'short int'} loses precision
error: invalid conversion from 'int16_t' {aka 'short int'} to 'const int16_t*' {aka 'const short int*'}
error: ISO C++ forbids declaration of 'int16_t' with no type
error: 'const int int16_t' redeclared as different kind of entity
Забыл главное : RP2040
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Arduino IDE в вопросах и ответах
Так 62445 не влезает в int16
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Arduino IDE в вопросах и ответах
[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4660612#p4660612"]Так 62445 не влезает в int16[/uquote]
У всех влезает , а у них нет . Вообще то оно отрицательное. -3091 и в -32 768 влезает.
У всех влезает , а у них нет . Вообще то оно отрицательное. -3091 и в -32 768 влезает.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Arduino IDE в вопросах и ответах
Попробуйте явно -3091 в массиве задать.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Arduino IDE в вопросах и ответах
[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4660620#p4660620"]Попробуйте явно -3091 в массиве задать.[/uquote]
Ну не хотелось бы, разве что попробовать , их там тыщи !
Придется программу целую стряпать.
Ну не хотелось бы, разве что попробовать , их там тыщи !
Придется программу целую стряпать.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Arduino IDE в вопросах и ответах
Понятное дело, что никто не будет 1000 (да даже 100) значений менять вручную - это просто понять, что конкретно не нравится.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1906
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Arduino IDE в вопросах и ответах
снимите скобки
Код: Выделить всё
const int16_t DATA_16[] = {0xf3ed, 0xf40a ...Re: Arduino IDE в вопросах и ответах
[uquote="veso74",url="/forum/viewtopic.php?p=4660627#p4660627"]снимите скобки
[/uquote]
Какие ?
[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4660620#p4660620"]Попробуйте явно -3091 в массиве задать.[/uquote]
Ну это число проглотил , не подавился, но не хочется. Может есть способ проще ?
Код: Выделить всё
const int16_t DATA_16[] = {0xf3ed, 0xf40a ...Какие ?
[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4660620#p4660620"]Попробуйте явно -3091 в массиве задать.[/uquote]
Ну это число проглотил , не подавился, но не хочется. Может есть способ проще ?


