Константин @Costic
Программист-консультант
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Software Developer, Embedded Software Engineer
Lead
Programming microcontrollers
Software development
C++
Python
Math modeling
Всё устройство питается от «телефонной зарядки», предположим 500мА. Дальше мне рассчитать слабо. Надо или модель строить, или вам проще измерить свою схему. Аналогия в том, что если у вас работает сварочный аппарат, то в сети заметны всплески и помехи, но всё работает до поры до времени.
Нагрузка — китайская пассивная пищалка.
У меня в линии питания были иголки в пределах нормы (милливольты), но проект и питаные совсем другие были.
На stackexchange Olin Lathrop хорошо комментирует.
electronics.stackexchange.com/questions/39503/is-this-a-proper-way-to-connect-a-piezo-speaker-to-mcu
electronics.stackexchange.com/questions/58582/using-a-microcomputer-in-the-drive-circuit-of-a-piezo-buzzer
А также мои личные измерения ниже.
Калькулятор — это с Вас. Я свой комментарий подтвердил.
P.S. Линия RESET наверное должна быть с конденсатором, чтобы не дребезжать и хотя бы 2мкс удерживать. Но это уже недоработка китайцев.
Мораль — учите закон Ома как можно раньше. :-)
Я у себя дома наблюдаю, например, 6 станций на канале №1, мой на 14-м иногда с кем-то пересекается. А всего на телефоне вижу 12-15 одновременно. С внешним приёмником ловил более 100 станций. По-моему, не надо ставить в каждой комнате по передатчику. Если нужна скорость, то есть проводной Ethernet.
1) Для инициализации и настройки периферии используется конфигуратор (вроде CubeMX, для тех кто не в теме), это такой норматив, правило в этой среде разработки. И этот конфигуратор генерирует код функций: WDT_Init(); PORT_Init(); SYSCLK_Init(); и т.д. Так принято в SiLabs 8051. В Windows API, например, принято имена давать lpszClassName; Никто не возмущается.
2) Функции инициализации не имеют аргументов. Более того, в каждом проекте они разные. Поэтому комментарий дать — хорошая практика.
3) Ядро 8051 живёт более 40 лет и есть много кода для него. Раньше (и иногда сейчас) используются «магические константы» для записи в регистры. Это не красиво и не понятно. Эта проблема частично решается оформлением кода в два столбца с комментариями. Это не я придумал, это традиция. «When in Rome do as romans do».
4) Оформление дескрипторов у меня выполнено в стиле SiLabs и на версии языка С, который понимает IDE.
Критиковать ваш код в ответ не буду, но с указателями и типами данных у вас помойка в коде. Ищите сами. Я из темы удаляюсь.
В целом проект очень интересный, только код без комментариев — это как машинный код, кроме компилятора его никто не понимает. Даже автор через год забудет.
Философия учит мыслить, показывает развитие мышления у человечества. Основы права нужны любому человеку в условиях капитализма.
Очень многое зависит от преподавателя. Обучать С++ 20 на мой взгляд не верно. Сначала надо изучить основы — процедурное, структурное, функциональное и Об.Ориентированное программирования.
Пишу как человек, который был в ВУЗе в разных ролях.
Расход чернил высокий, в рекламе и документации написана (не)правда (заполнение листа не более 5%), 220 листов/картридж. Нет. Листов 30 (в зависимости от качества).
Цветные фото, которые пробовал печатать сейчас выцвели. С трудом можно что-то различить. Сейчас проще и выгоднее в любом салоне распечатать.
Я был школьником. У нас в 1986 или 1987 году появился компьютерный класс с БК-0010 и ДВК в качестве сервера. Корпус из металла 2мм («бронесталь» почти /сарказм/). Сеть была, игрушки загружали по очереди, т.к. два и более подключения намертво всю сеть вешали. Никто не знал почему и как с этим работать. Ладно мы — школьники, балбесы. Но и учительница ничего не знала. Я часто ходил в книжные магазины искать литературу. Кроме «странных» диалектов Бейсика ничего хорошего не было. В науч.-тех. библиотеке можно было найти что-то толковое от издательств «Мир» или «Радио и Связь». Короче, у меня не было возможности научиться в те годы.
А ещё в начале 80-х не у всех телефоны и цветные телевизоры были. Бытовая радиоэлектроника (магнитофоны/радио/плееры) вроде бы работали и свои функции выполняли, но внутри были жуткие кишки из проводов и дискретных радиодеталей (например, магнитола ВЭФ). Культура инженеров и производства была низкая. Хотя телевизоры к середине 80-х научились делать и платы ТВ (разврётки, синхр, каналов) были спроектированы и сделаны аккуратно. В тоже время счастливчики привозили из заграницы дешевую электронику (калькуляторы, часы, телефоны) пр-ва Гонг Конга. Она ломалась и, удивительно, но наши умельцы без всякой документации это «г» ремонтировали.
А потом я стал студентом и в 1990-е познакомился с другими компьютерами. В институте на первом этаже в маш.зале стояли ЕС-1035 и ЕС-1045, а на втором стояли СМ, Искры, ЕС-1845. Никаких сетей и тем более оптоволокна до 1996 года там не было. Никому и не надо было. А ответственные за ЭВМ дрожали и никого не подпускали к ним. Самый быстрый способ переписать файл с одной ЭВМ на другую был — ручками на лист бумаги написать, а потом с терминала ввести. А ведь в 1989 году уже Intel 486 появился.
В принципе в 80-е годы были технические возможности создать межвузовские сети или хотя бы внутри ВУЗа, но это никто не (смог) сделал. Исключение — Демос и Релком. На мой взгляд причина в том, что ЭВМ позиционировались как инструмент для расчётов, а не для обмена информацией.
P.S. Автор забыл сказать про библиотеку SPL MLDR187. Это важно. Это плюс. Но мне слезать с Cortex-M на RISC-V пока не хочется.
habr.com/ru/company/skillfactory/blog/523130
Читайте (или листайте) Хабр!
Кстати, частота 31250 выбрана очень удобно для устройств от 2МГц, т.к. делитель для неё без остатка делится. То, что вы называете «преобразователь уровней» — это не только для 5В, это чтобы включить оптрон в синтезаторе, ток выдать согласно стандарту. Чтобы работало везде, а не только на коленке.