Jump to content

    

ДЕЙЛ

Участник
  • Content Count

    279
  • Joined

  • Last visited

Community Reputation

0 Обычный

About ДЕЙЛ

  • Rank
    Местный

Информация

  • Город
    Array

Recent Profile Visitors

1722 profile views
  1. Вот поэтому более универсальным способом будет заполнение массива тем способом, который я ранее предложил. Если использовать просто sizeof(arr), то при переобъявлении массива из локального в глобальный можно забыть про его заполнение в какой-нибудь функции. Хотя я сам тонкости в цитате не знал, но заполняю массив таким способом из интуитивных соображений как более универсальным и однозначным. memset(buf_2, 0xFF, sizeof(uint8_t) * SIZE_BUF);
  2. Хотя в делфях по 2 и 3 параметра есть в готовых функциях. Я морально устарел со своими представлениями.
  3. Лучше перебдеть и накодить под самый тупой компилятор. my_array может восприняться как указатель на начало массива. Упрощение жизни компилятору кашу не испортит. Компиляторы не боги и тоже делают ошибки, для обхода которых иногда приходится менять код алгоритма. Пока только 6 лет непрерывного кодинга на Си, но обязательно изучу язык!
  4. Сколько способов, столько и мнений. В каждой ситуации идеальным будет компромиссное решение. Это как написать "Hello world" разными способами.
  5. Есть структура из 100 параметров. При вызове функции с передачей сотни параметров все они дополнительно копируются сначала в отдельную область памяти, чтобы затем уже внутри функции можно было их оттуда прочитать. При вызове функции с передачей указателя никакого дополнительного копирования не потребуется. Копирование сотни параметров потребует наличия дополнительных инструкций для процессора, регистров или оперативки для буферизации и времени на копирование.
  6. Параметр передаётся обычно через регистр процессора, число которых ограничено. Если параметров будет слишком много, то передаваться они будут через обычную память, что замедлит выполнение программы. Ещё и размер памяти программы увеличивается при неоптимальном коде.
  7. Я сделал бы так: void func1(uint8_t *buf_1); void func2(uint8_t *buf_2); #define SIZE_BUF 50 uint8_t my_array[SIZE_BUF]; void main { func1(my_array); } void func1(uint8_t *buf_1) { memset(buf_1, 0x00, sizeof(uint8_t) * SIZE_BUF); func2(buf_1); } void func2(uint8_t *buf_2) { memset(buf_2, 0xFF, sizeof(uint8_t) * SIZE_BUF); } Передача нескольких параметров в функцию - это дурной тон. В данном случае только два, что ещё терпимо. А если их несколько, то лучше передать указатель на структуру.
  8. Всех с наступившим годом! Отправили в Молдавии партию приборов с установленным модулем SIM868. В России всё работает нормально, в Молдавии проблемы с регистрацией в сети и проблемы с работой GPRS вне зависимости от оператора. Почему такое может быть? Какие тут могут быть особенности? Лог смогу показать только после 9 января.
  9. Иногда возникают проблемы с включением GPRS в роуминге, в домашней сети всё нормально работает. Есть какие-то тонкости работы с данным модулем в роуминге? На что нужно обратить внимание? Может быть причина в настройках APN? Лог работы:
  10. Обновил прошивку модуля и вернулся к данному вопросу, но результат отличается от того, что показано в аппноте https://manualzz.com/doc/44035963/sim868_gnss_agps_application-note_v1.00 Что делаю не так? Могут тут помешать команды инициализации GPS?
  11. Но в итоге физически излучаемая мощность уменьшается? У меня стоит вопрос не о сертификации, а об уменьшении наводимых помех на соседний модуль до замены по гарантии, т.к. причина в браке этого самого соседнего модуля.
  12. А если вышка скажет дать мощность киловатт, то что модулю делать? Логично иметь какой-то верхний порог максимальной мощности. Попробовал задать максимальную мощность командой AT+PCLCFG Регистрация в сети не сломалась, жду результат.
  13. Приветствую! Возникла проблема с тем, что антенна GSM создаёт неприятные помехи для другого модуля на плате. Эффект появляется в удалении от сотовой вышки. Хочу ограничить излучаемую мощность. Делаю это с помощью команд из вот этого описания: http://www.microchip.ua/simcom/SIM800x/Application Notes/SIM800_RF_testing_AT.pdf CPU[ 18.07.19 14:57:21 ] ---> AT+CENG? CPU[ 18.07.19 14:57:21 ] <--- +CENG: 1,0 CPU[ 18.07.19 14:57:21 ] <--- +CENG: 0,"0009,51,00,250,20,19,033f,00,05,35ef,255" Номер канала - 0009 CPU[ 18.07.19 14:57:21 ] <--- +CENG: 1,"0008,35,00,,,0000" CPU[ 18.07.19 14:57:21 ] <--- +CENG: 2,"0816,33,00,,,0000" CPU[ 18.07.19 14:57:21 ] <--- +CENG: 3,"0820,33,00,,,0000" CPU[ 18.07.19 14:57:21 ] <--- +CENG: 4,"0017,32,00,,,0000" CPU[ 18.07.19 14:57:21 ] <--- +CENG: 5,"0823,27,00,,,0000" CPU[ 18.07.19 14:57:21 ] <--- +CENG: 6,"0828,23,00,,,0000" CPU[ 18.07.19 14:57:21 ] <--- OK CPU[ 18.07.19 14:57:21 ] ---> AT+CIPSHUT CPU[ 18.07.19 14:57:21 ] <--- SHUT OK CPU[ 18.07.19 14:57:21 ] <--- Включаю автоматическую регистрацию в сети CPU[ 18.07.19 14:57:36 ] ---> AT+COPS=0 CPU[ 18.07.19 14:57:36 ] <--- OK Для канала 9 задаю максимальную мощность 9 CPU[ 18.07.19 14:57:36 ] ---> AT+CTBURST=1,1,9,9 CPU[ 18.07.19 14:57:36 ] <--- OK Далее вижу, что регистрация в сети сломалась. CPU[ 18.07.19 14:57:46 ] ---> AT+CREGDS? CPU[ 18.07.19 14:57:46 ] <--- +CREG: 1,0 CPU[ 18.07.19 14:57:46 ] <--- +CREGDS: 1,0 CPU[ 18.07.19 14:57:46 ] <--- OK CPU[ 18.07.19 14:57:58 ] ---> AT+CREGDS? CPU[ 18.07.19 14:57:58 ] <--- +CREG: 1,0 CPU[ 18.07.19 14:57:58 ] <--- +CREGDS: 1,0 CPU[ 18.07.19 14:57:58 ] <--- OK CPU[ 18.07.19 14:57:58 ] <--- CPU[ 18.07.19 14:58:19 ] ---> AT+CREGDS? CPU[ 18.07.19 14:58:19 ] <--- +CREG: 1,0 CPU[ 18.07.19 14:58:19 ] <--- +CREGDS: 1,0 CPU[ 18.07.19 14:58:19 ] <--- OK CPU[ 18.07.19 14:58:29 ] ---> AT+CREGDS? CPU[ 18.07.19 14:58:29 ] <--- +CREG: 1,4 CPU[ 18.07.19 14:58:29 ] <--- +CREGDS: 1,2 CPU[ 18.07.19 14:58:29 ] <--- OK Как правильно нужно ограничивать уровень излучаемой мощности сигнала GSM?
  14. Я правильно понимаю, что у меня первая версия прошивки (B01) и AGPS не будет работать? В одном проекте одна симка, во втором две.
  15. 22-23 соединены с 61-62 и с UART МК, вывод 59 соединён через 10 кОм с плюсом питания (40) и с ножкой МК. Возможна ли работа с AGPS в данной версии прошивки или только после обновления прошивки? Если не через FTP, то через HTTP будет работать? Где найти описание алгоритма при загрузке по HTTP?