Arduino IDE в вопросах и ответах

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
ded4141
Родился
Сообщения: 4
Зарегистрирован: Пт апр 11, 2008 07:11:16
Откуда: Ижевск
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение ded4141 »

Привет всем.
Прошу помощи разобраться с программой. Делаю поиск DS18B20, IDE 1.8.19 контроллер ATTIny85, проверяю в Proteus-е. Все компилится и идет поиск если строка 190 или 191 закоментированы, но если разкоментировать одну из них компиляция идет но поиск не проходит.
Вложения
kod.zip
(222.65 КБ) 96 скачиваний
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

Первое - рекомендую поставитьна вкладке
файл - настройки - сообщения компилятора - "ВСЕ"
это позволит получать деталировку сообщений об ошибках.
Второе...

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

data = data16 & 0xFF;
но data у нас тип byte, а результат операции int....
как то неправильно - или делаем приведение к типу byte или вообще по другому делать - есть же и lowByte() и маски со сдвигом...
Вобщем - работаем над ошибками!
8)
Последний раз редактировалось BOB51 Ср ноя 27, 2024 20:36:03, всего редактировалось 1 раз.
Реклама
ded4141
Родился
Сообщения: 4
Зарегистрирован: Пт апр 11, 2008 07:11:16
Откуда: Ижевск
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение ded4141 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4653744#p4653744"]Первое - рекомендую поставитьна вкладке
файл - настройки - сообщения компилятора - "ВСЕ"
это позволит получать деталировку сообщений об ошибках.
Второе...

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

data = data16 & 0xFF;
но data у нас тип byte, а результат операции int....
как то неправильно - или делаем приведение к типу byte или вообще по другому делать - сть же и lowByte() и маски со сдвигом...
Вобщем - работаем над ошибками!
8)[/uquote]
Ничего криминального не заметил, а lowByte() в строке 190 так же запрещает поиск.
Вложения
warning.zip
(13.39 КБ) 89 скачиваний
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

warning не критическая ошибка, а предупреждение онекорректности.
:roll:
Реклама
Эиком - электронные компоненты и радиодетали
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение Martian »

Предупреждение о чём-либо. Необязательно о некорректном.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

Там вроде "не могу преобразовать" и указана строка где вопрос...
Но компиляцию может и не останавливать - только предупреждение выдаст.
Я с 85й не работал - но Си вроде одинаков для всех...
Предупреждения надо устранять.
8)
Реклама
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение Martian »

Если говорить вообще о warnings, то не всегда. Они могут быть искусственно вызваны для сообщения-напоминания пользователю о чём-то, кроме того, они могут быть общими, но не относиться именно к данному случаю или быть допустимыми. Для всего этого специально существуют директивы, как генерирующие warnings, так и блокирующие их.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

Только не в случае с ded4141...
Там простейшая классическая ошибка...
В личке ему ответил, а сейчас и проверил и подтвердил предположение.
8)
Вот только не понимаю - зачем выдумывать то, что уже есть - к примеру та же библиотека OneWire?
Подставляем то, что нам нужно и достаточно.
То же касается и библиотеки для WS28xxx (Adafruit_NeoPixel) эти библиотеки крайне тяжело самоделками на Си заменить(без сишного ассемблера). Разве что с точки самоудовлетворения/самообучения.
:dont_know:
ded4141
Родился
Сообщения: 4
Зарегистрирован: Пт апр 11, 2008 07:11:16
Откуда: Ижевск
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение ded4141 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4653864#p4653864"]Только не в случае с ded4141...
Там простейшая классическая ошибка...
В личке ему ответил, а сейчас и проверил и подтвердил предположение.
8)
Вот только не понимаю - зачем выдумывать то, что уже есть - к примеру та же библиотека OneWire?
Подставляем то, что нам нужно и достаточно.
То же касается и библиотеки для WS28xxx (Adafruit_NeoPixel) эти библиотеки крайне тяжело самоделками на Си заменить(без сишного ассемблера). Разве что с точки самоудовлетворения/самообучения.
:dont_know:[/uquote]
библиотека OneWire не показывает поиск в Proteus, когда подгоняю времена в библиотеке -показывает только один адрес.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

А зачем собственно вешать гирлянду из микроLAN на тиньку 85ю (довольно редкую и ценою крокодиловою), если вполне в изобилии нанок и про-мини?
В то же время на практике серийный номер при одиночном датчике штука весьма излишняя.
Да и тестирование на макете гораздо надежнее...
:dont_know:
В то же время для "скоростных" протоколов придется использовать GNUasm (это не одно и то же, что avrasm2 в авр студии!), что для простого пользователя таки сложновато.
По интервалам исполнения вопрос весьма сложный - всегда есть определенные отклонения и при изготовлении (кварцев, элементов генератора) и при изменении окружающей температуры плюс "особенности" конкретной программы в конкретном железе. Ежли вписывается в усредненное значение - тогда и работать будет.
В принципе... ежли ужшшш "совсем приперло"... Делаем собственный преобразователь на малолапом МК под ассемблером (в той же авр студио) и стыкуем его с ведущим МК по любому из стандартных протоколов. Обычное дело - самодельный "периферийный контроллер".
8)
ded4141
Родился
Сообщения: 4
Зарегистрирован: Пт апр 11, 2008 07:11:16
Откуда: Ижевск
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение ded4141 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4654038#p4654038"]А зачем собственно вешать гирлянду из микроLAN на тиньку 85ю (довольно редкую и ценою крокодиловою), если вполне в изобилии нанок и про-мини?
В то же время на практике серийный номер при одиночном датчике штука весьма излишняя.
Да и тестирование на макете гораздо надежнее...
:dont_know:
В то же время для "скоростных" протоколов придется использовать GNUasm (это не одно и то же, что avrasm2 в авр студии!), что для простого пользователя таки сложновато.
По интервалам исполнения вопрос весьма сложный - всегда есть определенные отклонения и при изготовлении (кварцев, элементов генератора) и при изменении окружающей температуры плюс "особенности" конкретной программы в конкретном железе. Ежли вписывается в усредненное значение - тогда и работать будет.
В принципе... ежли ужшшш "совсем приперло"... Делаем собственный преобразователь на малолапом МК под ассемблером (в той же авр студио) и стыкуем его с ведущим МК по любому из стандартных протоколов. Обычное дело - самодельный "периферийный контроллер".
8)[/uquote]
Это первая моя прога в ардуино , тем более наделаны платы и спаяны. Раньше писал по мелочи на Algoritm Builder. Поиск DS написан и четко работает и по UART отправка идет нормально, а вот прием ни в какую. В ардуино UART работает а поиск не идет.
Записал сканер ROM кода -ни в PROTEUS ни в железе. Хотел вычислить адреса датчиков и тупо воткнуть в скетч.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

Собственно никто DSки - термометры не ищет (если речь о search rom) - идет прямое простое считывание данных блокнота с последующей проверкой контрольной суммы.
Или имеется ввиду отзыв "presence pulse" диаграммы обмена?
:roll:
Да и никто не обязывает использовать все функции библиотеки - выбираем самые необходимые и на их основе дописываем желаемое дополнение уже по своему.
8)
Еще одно замечание по поводу OneWire...
В основном файле *.ino предварительно должны быть объявлены массивы:
byte data[12] - массив данных блокнота(в частном случае только одного ds18b20 data[9]),
и
byte addr[8] - массив адреса/идентификатора - используется в случае необходимости работы с адресами.
:write:
Аватара пользователя
muravei_
Потрогал лапой паяльник
Сообщения: 337
Зарегистрирован: Чт май 20, 2021 13:33:05

Re: Arduino IDE в вопросах и ответах

Сообщение muravei_ »

Как уговорить Ардуино ИДЕ использовать 16 бит. Подозреваю , что int - 32 битный, поэтому на:

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

const (int16_t )(DATA_16[]={0xf3ed,0xf40a, ...
const int16_t* data_ptr = DATA_16;
ругается : error: narrowing conversion of '62445' from 'int' to 'int16_t' {aka 'short int'} [-Wnarrowing]
Пробовал варианты, не одновременно :
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 в вопросах и ответах

Сообщение Gudd-Head »

Так 62445 не влезает в int16
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
muravei_
Потрогал лапой паяльник
Сообщения: 337
Зарегистрирован: Чт май 20, 2021 13:33:05

Re: Arduino IDE в вопросах и ответах

Сообщение muravei_ »

[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4660612#p4660612"]Так 62445 не влезает в int16[/uquote]

У всех влезает , а у них нет . Вообще то оно отрицательное. -3091 и в -32 768 влезает.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Arduino IDE в вопросах и ответах

Сообщение Gudd-Head »

Попробуйте явно -3091 в массиве задать.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
muravei_
Потрогал лапой паяльник
Сообщения: 337
Зарегистрирован: Чт май 20, 2021 13:33:05

Re: Arduino IDE в вопросах и ответах

Сообщение muravei_ »

[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4660620#p4660620"]Попробуйте явно -3091 в массиве задать.[/uquote]
Ну не хотелось бы, разве что попробовать , их там тыщи !
Придется программу целую стряпать.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Arduino IDE в вопросах и ответах

Сообщение Gudd-Head »

Понятное дело, что никто не будет 1000 (да даже 100) значений менять вручную - это просто понять, что конкретно не нравится.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
veso74
Поставщик валерьянки для Кота
Сообщения: 1906
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение veso74 »

снимите скобки

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

const int16_t DATA_16[] = {0xf3ed, 0xf40a ...
Аватара пользователя
muravei_
Потрогал лапой паяльник
Сообщения: 337
Зарегистрирован: Чт май 20, 2021 13:33:05

Re: Arduino IDE в вопросах и ответах

Сообщение muravei_ »

[uquote="veso74",url="/forum/viewtopic.php?p=4660627#p4660627"]снимите скобки

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

const int16_t DATA_16[] = {0xf3ed, 0xf40a ...
[/uquote]
Какие ?
:shock:

[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4660620#p4660620"]Попробуйте явно -3091 в массиве задать.[/uquote]
Ну это число проглотил , не подавился, но не хочется. Может есть способ проще ?
Ответить

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