Jump to content

Дмитрий239

Members
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Дмитрий239

  • Rank
    Новенький

Электроника

  • Стаж в электронике
    Не связан с электроникой
  1. Создал секцию: SECTIONS { .rodata : { . = ALIGN(16); _start_cmdList = .; *(.cmdList) KEEP(*(.cmdList)) _stop_cmdList = .; } } объявил структуру и указатель на начало: typedef struct { const char *cmdName; const void (*const commandVoid)(uint8_t, char *[], char[]); } CommandHandler; extern const CommandHandler _start_cmdList[]; для теста занёс одну функцию: const void kek(uint8_t argc, char *argv[], char answ[]) { strcpy_P(answ, PSTR("wow")); } static PROGMEM const char __attribute__((__used__)) kekAlias[] = "lol"; const CommandHandler __attribute__((section(".cmdList"))) __attribute__((__used__)) CMDHandler_kek = {.cmdName = kekAlias, .commandVoid = kek}; и проверяю: const CommandHandler *in = &_start_cmdList[0]; const CommandHandler *out = &CMDHandler_kek; if (in == out) uart.println(F("ok")); uart.println((unsigned int)(in), HEX); uart.println((unsigned int)(out), HEX); uart.println((unsigned int)out->cmdName); uart.println((unsigned int)out->commandVoid); uart.println((unsigned int)in->cmdName); uart.println((unsigned int)in->commandVoid); Выводит: 1560 1560 124 801 12800 0 МК атмега168. Platform IO Avr gcc 11 Линкер скрипт стандартный, с добавкой сверху Вопрос: как получить первый элемент массива в секции?
  2. Спаял - не работает. Вот и решил спросить что не так. В холостую напряжение в норме, но модем работает нестабильно.
  3. Спасибо за схемы, но всё хотел узнать правильность расчёта R3. Проверить знание той теории что у мня имеется.
  4. Здравствуйте! Я бы хотел узнать, будет ли работоспособна данная схема. Вторым вопросом является расчет резистора R3. (5-VBEкт816(1,3)-VCEs8050(0,5))÷0,2(ток для открытия кт816) Верны ли расчёты выше? Цель: питание модема от 5 Вольт. Модем питается от 4 Вольт.
×
×
  • Create New...