Баг в компиляторе Ардуино, код сишной либы:
Иногда после компиляции знак есть, иногда проебан, по логике должен быть проебан всегда. Добавлено: Fri Oct 27, 2023 9:16 am |
Ivani писал(а): Иногда после компиляции знак есть, иногда проебан О каком знаке речь, если результат всегда будет положительным? Добавлено: Sat Oct 28, 2023 11:51 am |
Так вот он по логике датчика может быть положительный и отрицательный, в написании этой либы ошибка и результат всегда должен быть положительный, по факту иногда после компиляции знак работает, а иногда нет... Добавлено: Sat Oct 28, 2023 12:12 pm |
Не проще ли сразу на пять помножить? Или непременно три бита откинуть надо? Добавлено: Sat Oct 28, 2023 1:06 pm |
Это чужая либа. Добавлено: Sat Oct 28, 2023 1:42 pm |
Не получается отправить смс через gsm-модем SLM770A. На команде "AT+CMGS" задумывается на пару минут, после чего выводит приглашение для ввода ">" и сразу в следующей строке "ERROR". Пробовал две разные симки. Симки модем видит, на команду "AT+CPIN?" отвечает "+CPIN: READY". Сотовая сеть также присутствует. "AT+CSQ" показывает адекватный уровень сигнала, "AT+COPS" выдает "MTS RUS". На самый очевидный ответ "проверь есть ли деньги на счёте" сразу скажу, что на одной из симок деньги точно есть, проверяли. Кроме того модем не хочет отправлять смс и в режиме PDU тоже, когда в команде "AT+CMGS" передаётся длина сообщения, а номер получателя и само сообщение - после приглашения на ввод ">". В режиме PDU также после команды "AT+CMGS" задумывается на пару минут и выдаёт одномоментно ">" и "ERROR". Позвонить с модема, кстати, тоже не получается с теми же симптомами - на команде "ATD" на пару минут задумывается, после чего выдаёт "ERROR". Однако если позвонить на модем, то звонок проходит, команда "ATA" поднимает трубку. Кто имел дело с gsm модемами? В чём может быть дело? У меня мысли закончились... Добавлено: Mon Oct 30, 2023 7:03 pm |
думаю лучше покурить форум https://4pda.to/forum на эту тему, если не зареган, могу логин и пароль в личку скинуть Добавлено: Mon Oct 30, 2023 7:54 pm |
1Vcoder писал(а): Не получается отправить смс через gsm-модем В самом пакете эти услуги предусмотерены? При звонке с модема в конце номера ; присутсвует ? А то оператор может понять что работа CSD ,это есть не в каждом пакете. Сколько СМС и Voice в пакете? Может уже все выбрали .На модем СМС приходят ? Поставить карточку в старый кнопочный и проверить работу СМС итд. Я конечно жутко извиняюсь а где в описании написано что модем должен СМС отправлять ? Добавлено: Mon Oct 30, 2023 8:08 pm |
Greef писал(а): думаю лучше покурить форум https://4pda.to/forum на эту тему Хм. Всегда думал, что 4pda это про гаджеты, а не про embedded. Но погляжу. Логин-пароль не надо, спасибо. Надо будет - сам зарегаюсь. Добавлено: Mon Oct 30, 2023 9:25 pm |
В описании написано VLTE сомневаюсь что будет звонить. Маш модем для передачи данных. Добавлено: Mon Oct 30, 2023 9:30 pm |
Vcoder писал(а): что 4pda это про гаджеты Там достаточно любителей поковырять роутеры и их прошивки, и про модемы тоже было Добавлено: Mon Oct 30, 2023 10:04 pm |
Народ, кто с STM8S ещё работает, как сократить время реакции/возврата из прерывания? Неужто накладные расходы на само прерывание должны жрать 60+ тактов процессора? Может как-то настройки компилятора iar for stm8 ещё есть, кроме степени оптимизации? Сейчас максимальная степень оптимизации по времени, на стандартной средней оптимизации нужно было 320 период делать вместо 256. В главном цикле делал меандр выводом порта, в начале и конце функции обработки прерывания взводил и сбрасывал бит другого вывода порта и на двухканальном осциллографе смотрел. Пачки импульсов - работа главного цикла, импульс - процедура обработки прерывания. Добавлено: Tue Oct 31, 2023 8:50 pm |
Электромонтёр писал(а): должны жрать 60+ Это на С или ассемблере? Если на С, то как минимум надо регистры в стек покласть и достать обратно в конце. Вполне. Маловероятно что компилятор анализирует, что надо в обработчике, всю пачку и сохраняет стандартно. И статусный регистр с флагами от операций тоже. Конкретно с СТМ8 не работал, но это всех процов касается. Надо быстро, пишем на ассемблере. Добавлено: Tue Oct 31, 2023 9:38 pm |
Электромонтёр писал(а): Неужто накладные расходы на само прерывание должны жрать 60+ тактов процессора? А что даташит по этому поводу сообщает? А функцию прерывания ты сам определял или силами готовых библиотек? Добавлено: Tue Oct 31, 2023 9:50 pm |
Доктор Зло писал(а): Это на С или ассемблере? Если на С, то как минимум надо регистры в стек покласть и достать обратно в конце. Вполне. Маловероятно что компилятор анализирует, что надо в обработчике, всю пачку и сохраняет стандартно. На С. Там ещё 12 / 16 виртуальных регистров в настройках компилятора. Максимальной оптимизацией удалось выиграть немного машинного времени. Seriyvolk писал(а): А что даташит по этому поводу сообщает? А функцию прерывания ты сам определял или силами готовых библиотек? Даташит говорит порядка 15 тактов. 30 тактов в сумме с учётом конвейера. Функция прерывания взята из stm8sxxx.h В общем, выкинул прерывание, поскольку в главном цикле ничего не выполняется. И всю функцию затолкал в главный цикл с ожиданием нужного мне события. Добавлено. Отказом от прерывания и тщательной оптимизацией удалось сократить время выполнения функции с ~320 тактов до ~250 тактов процессора. Добавлено: Wed Nov 01, 2023 5:14 pm |
Народ, как в iar скомпилировать отдельно функцию в бинарник и собирать прошивку с указанием на этот бинарник, чтобы он присоединялся к прошивке? Или задать функцию из скомпилированного бинаря массивом с точкой входа? Мне надо кусок кода без подробного исходника сделать, но чтобы собиралось и работало. Не хочу исходник на ноу-хау отдавать. Бинарь - пожалуйста, дизассемблерить и разбирать физику немного желающих будет. Добавлено: Wed Nov 22, 2023 6:50 pm |
Это называется статическая библиотека. Обычно при создании проекта когда указываешь тип, есть варианты "executable" и "library". Конкретно про иар не скажу, но смысл везде примерно один. Вбей в гугель iar library project... Добавлено: Wed Nov 22, 2023 7:45 pm |
Народ, на STM32 использовал такую конструкцию для переименования элементов массива в отдельные переменные
В кейле этот код работал. Но IAR for STM8 его не жрёт. Что может быть? Добавлено: Sun Dec 24, 2023 4:09 pm |
А что, так можно?? Переменная val0 задана выше этого дефайна? вдруг в этом дело Добавлено: Sun Dec 24, 2023 4:51 pm |
Денис писал(а): Переменная val0 задана выше этого дефайна? вдруг в этом дело Нашёл, в чём дело, у меня на плате входы в обратной последовательности к порту шли. Поправил свою таблицу дефайнов и всё заработало, так что извиняйте за беспокойство Денис писал(а): А что, так можно?? У меня целая библиотека таким макаром написана Добавлено: Sun Dec 24, 2023 5:26 pm |
Непонятно только, зачем эта лютая лють нужна? Добавлено: Mon Dec 25, 2023 12:16 am |
N1X писал(а): Непонятно только, зачем эта лютая лють нужна? Библиотека написана так, чтобы основная программа "usercode" писалась макросами как можно проще.
проще, чем
а у меня все переменные как часть массивов идут чисто для удобства библиотеки. Короче некоторый закос под "ардуиноскетчи", чтобы "пользовательский" алгоритм для вот этой игрушки писался и отлаживался за минимальное время щас только немного облагородить код и наверное всё. Хотя может ещё дополнительный сторожевой таймер задействовать от зависания процессора, хотя и основной работает - проверял на зависание, процессор сбрасывается, если два цикла опроса не обновлять регистры сторожа Кстати, пардон, переименование сделано таким образом
Добавлено: Mon Dec 25, 2023 4:24 am |
Открой для себя структуры тогда уж... Добавлено: Mon Dec 25, 2023 12:33 pm |
N1X писал(а): Открой для себя структуры тогда уж... Тов. N1X, у меня элементы массива по очереди в цикле обсчитываются, ХЗ как такое с структурами сделать. Чтобы переменной-указателем структуру перебирать. Товарищ один тож про структуры говорил, но у меня массивы как группы переменных и в цикле по одной считаются по надобности. Мне так реально удобнее, программа небольшого размера ) Во всяком случае, библиотека отлажена и можно писать функции макросами. Добавлено: Mon Dec 25, 2023 12:36 pm |
Ну пока для себя и небольшая, то в принципе как угодно можно... А вот кому-то другому, либо через пол годика самому в таком что-то понять - тот еще квест... Но это так, мнение, ни на что не претендую... Добавлено: Mon Dec 25, 2023 2:39 pm |
Лицензионное соглашение (c)Flyback.org.ru Российское общество любителей высоких напряжений. Использование материалов с данного сайта и форума возможно только с разрешения администрации. |