Перейти к содержанию
    

spirit_1

Участник
  • Постов

    557
  • Зарегистрирован

  • Посещение

Весь контент spirit_1


  1. ваш вариант безусловно лучше и правильнее , но я пока на быструю хочу проабгрэйтить фирмвэр . Если все пройдет как надо то для постоянки безусловно добавлю ваш вариант скажет так очень быстро) скопировал , вставил и запустил .
  2. нашел онлайн, сделал из моего файла массив , попробую всунуть в редактор https://notisrac.github.io/FileToCArray/
  3. там 140 кб, это не много? Вы имеете в виду конвертнуть вашей программой в массив текстового вида и просто скопировать в программу?
  4. STM32CubeIDE чтение bin

    Есть программа на Си под Расбери которая была переделанна под STM32f429 в финале необходимо добавить возможность чтения из bin файла данных которые потом по SPi залються во внешнее устройство оригинальный код такой uint8_t image_array[MAX_IMAGE_BYTES]; static struct ConstByteSpan read_in_image(char* image_file) { // Attempt to open the file FILE* file = fopen(image_file, "r"); assert(file != 0 && "Issue opening file"); fseek(file, 0, SEEK_END); size_t file_len = ftell(file); fseek(file, 0, SEEK_SET); int result = fread(image_array, file_len, 1, file); assert(result != 0 && "Issue reading file"); struct ConstByteSpan image = { .data = image_array, .length = file_len, }; fclose(file); return image; } хотелось бы как то подтянуть bin в проект и загрузить из него все в массив по аналогии выше в RAM. Памяти хватает. Можно ли это как то без лишнмих заморочек сделать?
  5. Не лучше. Просто под боком CNC - можно быстро изготовить тестовую плату . Главная проблема с этими нижними дырами была. Но в целом все получилось как и планировал Синтезатор до 6ггц макетка работает
  6. Спасибо. Я их уже в реальном варианте протестировал
  7. Да, я понимаю но меня интресовал именно этот теоретический аспект без константы , насколько правильно я все понял. Спасибо!
  8. спасибо, но указатель я получаю только один раз при ее создании. И если я в этот указатель потом запишу другой адресс то НАВСЕГДА потеряю доступ к этой статичской ячейке?? Верно? Т.е в случае обычной переменной я ВСЕГДА знаю адрес этой ячейки. В случае описанном выше я получаю лишь ОДИН раз при создании и при перезаписвынии указателя содержащего этот адресс я его теряю навсегда , хотя ячейка в памяти сеществует и успешно живет int a =5; int * ptr = &a; ptr = 0x678954 перезаписали адрес ячейки другим ptr = &a восстановили адрес ячейки ............ char * str = "jjj"; str = 0x98686969 перезаписали адрес строки другим. АДРЕС ПОТЕРЯН БЕЗВОЗВРАТНО!!
  9. У меня нет проблем с пониманием видимости классических переменных и указателей . Я очень редко работаю со строками и у меня вызывает вопрос только лишь этот вариант char* srt = "hhh"; //--------------------------------- Можно ли УСЛОВНО разделить это выражение так char* str = ( str_arr1[4] ={hhh} ) В данном случае компилятор создал строку из 3+1 байт и записал ее гдето в памяти например по адресу например 00cff9d4 этот адрес мы передали указателю str т.е по сути это эквивалентно такому char* str; str_arr1[4] ={hhh} ; str =str_arr1; Теперь самое интересно , если выше все так то адрес 00cff9d4 сейчас хранится ТЛОЬКО в указателе str !! и если мы туда запишем другой адрес то получим утечку памяти?? Ведь строка {hhh} ; все ще существует ДО КОНЦА ПРОГРАМЫ(или бока) но адреса ее мы уже не знаем и использовать ее уже не можем??
  10. "Строка - это массив однобайтных переменных или констант." Все описанное выше понятно и не отвечает на вопрос , Приведу другой пример В main имеем такое char* temp ; temp ="asd11111"; Время жизни этого участка памяти"asd11111" ( не указателя а именно содержимого строки в памяти) будет до окончания текущей функции , в данном случае мэйн?
  11. я понимаю разницу поэтому и спрашиваю . в данном случае char* temp ="asd11111"; создали указатель temp затем гдето в памяти по адресу ХХХХ содали физически строку строку "asd11111" далее дали нашему указателю адрес этой строки функция вернула указатель на этот адрес Но функция после этого завершилась и этот обьект как бы исчез. Программа считает этот участок памяти свободным по факту? Т.е указатель по факту указывает на обьтект(строку) которой уже нет для программы Верно?
  12. Данные не денуться, но если допустим переменная temp какя то локальная была в другой функии, в эту функцию в мэйне мы передали указатель на нашу структуру и записали тутда temp и завершили фунцию. temp как локальная переменная исчезла после завершения функции typedef struct{ int a; char *Mystr; }strTT; ..-------------------------------- void yy(strTT *strIn){ char* temp ="asd11111"; strIn->Mystr = temp; } ..-------------------------------------- далее в мэйн strTT *strart = (strTT*)malloc(sizeof(strTT)); yy(strart); printf("%s\n", strart->Mystr ); как в данном случае?? сколько программа будет держать в памяти эту строку? "asd11111"; Я позреваю что в данном случае мне принт вывел asd11111 просто потому что программа еще не успела занять эту ячейку другими переменными Поскольку она была локальна и для программы уже погибла после завершения функции и теперь м эйне мы выели просто мусор по этому адресу
  13. Да, каюсь структу не скопировал и const пропустил но на вопрос вы ответили, спасибо . Меня волновал вопрос правильно ли я понимаю что после завершения программы память освободиться
  14. Что то не пойму данный вариант. Структура получает указатель на начало строки и сохраняет в указателе temp передает указатель в структуру так по кругу Где физически храняться эти строки в памяти ? в Куче? когда эта память освобождаеться? Когда я грохну конкретную структуру? void main(){ char* temp ; strTT *strart = (strTT*)malloc(sizeof(strTT)); strTT myStr; temp ="asd11111"; strart->Mystr = temp; temp ="qwe222222"; (strart+1)->Mystr = temp; printf("%s\n", strart->Mystr ); printf("%s\n", (strart+1)->Mystr ); }
  15. мощность не очень большая , но сопротивление большое. Отсюда и напряжение довольно приличное . Вобщем гдето пик ту пик 300в плюс минус. Как с такими напряжениями поведут себя смд разных размеров? Ставить просто так , потому что гдето на форумах аля пишут что Ок не хотелось бы Хотелось бы ясно понимать что и сколько. Так же как для керамических конденсаторов
  16. Собственно столкнулся с тем что большинство производителей СМД индуктивностей не спeцифицируют этот параметр. Интересует например какое пиковое ВЧ напряжение выдерживает например 0805 индуктивность для частот десятки мгц? Подобный вопрос нашел на англоязычных форумах. Пишут что в среднем 0805 держит до 200в
  17. это не проблема, контроллер дает два сигнала управления с мертвым временем, сие сразу обозначил как на датащиты глянул. Хотел в LTspice погонять но не нашел нигде на этот оптртон модели. Но к транзисторам я еще вернусь , мне на перспективу надо еще вариант с гораздо более быстрым переключением на уровне 1-2 мкс
  18. два оптрона,т.е полноценный ключ в моем случае это гдето 0.5-0.6$ ,Сумарная цена компонентов на вашей схеме приблизительно такая же по маузеру Тут наверное дальше дело на любителя, подозреваю что ваши 4 транзистора можно втиснуть в площадь 2 оптронов . Вобщем оптроны заказал , за схему спасибо в любом случае Назгузка да, будет повыше сопротивление ,дал с большим запасом , здесь меня волновал только ток утечки ключа , что бы не садить источник
  19. здесь имелось в виду что источник по высокому напряжению имеет высокое внутреннее сопротивление , но на выходе довольно приличный электролит Если сам свич будет иметь достаточно низкое сопротивление паразитное относительно земли то будет подсаживать сторону высокого напряжение а поскольку в планах иметь таких свичей несколько в паралель подключенных к питанию для разных целей , они могут здорово посадить высокое напряжение повторюсь, краткие броски не критичны , сгладит электролит но относительно большой ток утечки на землю присадит целиком высокое напряжение источника вот этого и хотелось бы исбежать или минимизировать максимально Но пока жду оптроны, надеюсь они решат вопрос проще и дешевле в моем случае
  20. Спасибо! Хороший вариант. Возьму на заметку если вдруг с оптронами не получиться
  21. я нашел оптроны меня удовлетворяющие TLP387 , макс напряжение 300в ток 150ма пара штук решает мою проблему . МОСФЕты на выходе соотвественно не нужны
  22. в общем случае в вашем случае помоему все ясно. гетеродин у вас до 6 ггц есть смеситель какой то m810 далее фильтр с приемником каким то СС1100 или любой другой дающий вашу полосу собрать на 3 платах , написать фирмвэр по посмотреть что будет, дальше по необходимости можно добавлять фильтры итд
  23. надо сделать коммутатор со следующими параметрами 1. Коммутируруем от контроллера 3.3v / состояние 0 или 1 2. в состоянии 0 например выдает на выходе -250... 300 вольт 3. в состоянии 1 выдает +5..12 вольт 4. время переключения не очень критично, сотни мкс 5.ток потребления от +5..12 вольт в районе 100ма. 6. По -250в источник питания с высоким выходным сопротивлением, и в статическом стостоянии , кроме моментов переключения желательно что бы сам свич имел сопротивление не более 100к относительно земли , сама же нагрузка свича по высоковольтной стороне будет десятки киллоом ну и конечно максимально дешиво Интересуют любые идеи на этот счет
  24. Сделать ручной сканер с полосой 6ггц за смешную цену с вашими требованими весьма нетривиальная задача SA6 имеет чувствительность на 10дб хуже ваших требований прои полосе 200кгц, в 5 раз уже вашей скорость скнирования заявлена на уровне 700 мгц сек полагаю что делали его люди весьма квалифицированные в этом вопросе и имеющие неоходимый опыт и приборы Т.е то что вы хотите сделать при кажущеся на первый взгляд простоте задача весьма и весьма сложная и вряд ли с наскоку выйдет груьо говоря сделать аппарат превосходящий по параметрам SA6 сделать за несколько десятков долларов на коленке Быстрый и нормальный вариант в данном случае брать какие то китайские приборы типа SA6 или подобный и менять прошивку под себя Если же продолжите делать, держите в курсе. Интересно чем закончиться) Но надо еще понимать что у китайцев очень низкая маржа. Так что .
×
×
  • Создать...