-
Постов
1 454 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент esaulenka
-
Диапазон частот детского плача
esaulenka ответил Halfback тема в В помощь начинающему
У меня знакомые пользуются парой дешёвых радиостанций (Midland'ы, кажется) диапазона 433 МГц. На одной настраивается VOX (есть уже почти в каждой китайской поделке), вторая вешается маме на шею. "Анализом спектра определённого диапазона частот" мама занимается самостоятельно. Работает очень хорошо. Хотя... может это ребёнок такой догадливый: хочешь что-то - кричи! :-) Почему такие штуки не продаются в каждом "Детском мире" - для меня загадка. -
За return должно следовать выражение того же типа, которое должна возвращать функция. В данном случае объявлена функция, которая ничего не возвращает, и писать после return ничего нельзя. Про скобки - это такая рекомендация для удобочитаемости. Необязательная, и лично я пишу без скобок. Знак <<1 означает сдвиг влево на один разряд. Результат этого действия - значение умножается на 2. Подобная методика умножения используется в "мелких" контроллерах, которые не имеют аппаратного умножителя вовсе (или этот умножитель работает очень медленно). Аналогично можно делить (аппаратное деление - штука вообще редкая). Выяснить, что получается при сдвиге на 8 разрядов, предлагаю самостоятельно. Также самостоятельно предлагаю разобраться, как АЦП раскладывает результаты своей работы по регистрам ADRESL и ADRESH, и что надо сделать, чтобы собрать его в одну переменную. Если вкратце, читать, читать и ещё раз читать.
-
Слесарь, ну не надо вредительства! Схема защиты от сильного перезаряда/переразряда не является нормальным зарядным устройством. Вероятность того, что "рванёт", она снижает, но долговечность этой конструкции оставляет желать лучшего.
-
Нарисуйте, пожалуйста, схему, как такая конструкция в принципе работает. С указанием направления токов и значениями напряжений в каждой точке. Ну хоть примерно, умозрительно. UPDATE. Пардон, сообразил. Если самому додумать, что один светодиод зелёный ("неправильный"), второй красный, то логика какая-то прослеживается. Я с чего-то решил, что они одинаковые.
-
и о ЦАПах, которые на самом деле очень даже АЦП Ну и ладно. Эти входы являются опциональными, о чём написано на второй же станице даташита в разделе АЦП. По умолчанию опорными являются AVDD и AVSS. Точности в сотую вольта, с таким подходом добиться будет сложно (какая там у Вас точность опорного? 2%? а мерять-то хочется с точностью в 10 раз больше!) , ну да не с профессиональными же вольтметрами конкурировать :) Ну это явная ошибка разработчика. Если я правильно помню микрочиповские даташиты (крайний раз работал с пиками в студенчестве), где-то была специальная схема "какие ноги минимально необходимо соединить". В их число входят ВСЕ ноги питания, т.е. в данном случае по 4 ноги VSS / VDD, а также AVSS/AVDD. Вопрос привычки. При наличии нормальной паяльной станции (надо разводить на деньги начальство! хотя бы на 100$, потом очень пригодится) работы на пару минут вместе с подбором тоненькой проволочки, нагревом паяльника и протиркой результатов спиртом :)
-
Маленький совет: при написании комментариев забыть про буфер обмена. Вообще совсем. Тогда вот это #define ADDR_HL1 0x3 // определяю адрес первого индикатора HL1 0x03, как переменную ADDR_HL1 #define ADDR_HL2 0x4 // определяю адрес второго индикатора HL2 0x04, как переменную ADDR_HL2 пишется как // определяю адреса индикаторов #define ADDR_HL1 0x3 // первый индикатор #define ADDR_HL2 0x4 // второй индикатор Пожалейте глаза того, кто это читать будет - полезной информации в первом примере куда меньше половины. И также присоединяюсь к предложению почитать книжки. Классика жанра - Керниган-Ричи, но можно и полистать более "упрощённый" вариант с упором в микроконтроллеры.
-
Лупа с подсветкой Pro'sKit 8PK-F150NB
esaulenka ответил zombi тема в В помощь начинающему
Когда на нашем микроскопе сдохла лампа, наш умелец выпилил кусок текстолита по форме лампы и напаял туда штук 20 светодиодов. Светит очень хорошо, моментально включается, не моргает и не ломается. Рекомендую. Тем более тут не надо извращаться с выпиливанием круглого куска текстолита (у нас настоящая безтеневая подсветка - одна лампа окружает рабочую зону со всех сторон. Ну и блок питания, разумеется, пришлось поменять. -
Вопрос по диодному мосту
esaulenka ответил Pavel_I тема в Схемотехника
Ну а что б ему не греться-то? Там на каждом диоде по 0.8В падает... Если верить графику из даташита, при резистивной нагрузке 1А этот мостик будет греться на 40 градусов. Это очень даже ощутимо. -
Измерение тока, часть вторая
esaulenka ответил esaulenka тема в Схемотехника
Единицы килогерц от источника питания - это с бааальшим запасом. А сотни кГц - это отпаять один конец дросселя в импульснике, и заглянуть, какой ток бегает через него. Я любопытен :) Спасибо, загляну. Хочется сделать универсальный инструмент. К тому же нехорошо землю рвать: земля устройства связана с заземляющим контактом сетевой вилки (напрямую, авторами китайского сетевого адаптера). Также земля связана с компьютером (кабелем RS232 или USB). Какие там токи бегают при включении шунта - не очень очевидно. Лучше чуток подумать, чем напрягать людей запросами "а закажи мне вооон ту экзотику". Техасовские операционники в Компеле (пардон, Терре) лежат, могут продать хоть одну штуку. А вот Аналог (из тех что я искал) - только под заказ. Ну и зачем месяц ждать? -
Измерение тока, часть вторая
esaulenka опубликовал тема в Схемотехника
(соседней темой навеяло) Периодически очень хочется посмотреть форму и значение тока, потребляемое нашими устройствами. Причём хочется мерять и постоянный, и переменный ток (потребление меняется с частотой единицы кГц, но в идеале хочется заглянуть в импульсные преобразователи - там уже сотни кГц). Значения токов - от десятков-сотен мА до 5 А, напряжения - до 30 вольт. Заглядывал в гугл, народ собирает трансформаторы тока (простейший). В связи с тем, что у меня почти всегда есть постоянная составляющая, зато нет нужды в гальванической развязке, хочу попробовать обычный шунт. Более того, я уже пробовал - резистор 0.2 Ом в разрыв минуса питания (где-то далеко связан с землёй осциллографа), с него два щупа осциллографа. Шумит оооочень хорошо. Операционник воткнуть? А какой (попроще - подоступней)? Хочется, всё-таки, довольно большие напряжения и полосу побольше... У токоизмерительных TI (Burr-Brown, точнее) как-то с полосой не густо, на мой дилетантский взгляд; Analog'овских current sense amplifiers к нам не возят (а с заказом 5 штук мало кто возиться будет). Не выпендриваться и взять что-то общего применения? -
Самое простое - ввести понятие логического канала и отделить промежуточной функцией этот логический канал от физических пинов. Как-то так: void Channel_Set (char ch) { switch (ch) { 1: PORTB.4 = 1; break; 2: PORTB.7 = 1; break; 3: PORTC.1 = 1; break; } } void Channel_Clr (char ch) { // тут аналогично } Тогда в эту вашу zamer() надо передавать не номер пина, а номер канала.
-
бинарная форма представления в Keil
esaulenka ответил skyvmicro тема в ARM, 32bit
Вопрос не в тему: а с чем связано такое желание? Это оптимизация под 8-бит арифметику, чтобы индексы поменьше были? -
бинарная форма представления в Keil
esaulenka ответил skyvmicro тема в ARM, 32bit
Написать 256 раз #define 0b00001111 0x0F В стандарте Си "бинарного вида" не предусмотрено. А вообще, это либо пишется как 0x0F, и конвертируется в голове, либо как #define BIT(n) (1UL<<(n)) data = BIT(3) | BIT(2) | BIT(1) | BIT(0); -
Там формула для "среднего по больнице" напряжения БЕЗ использования сглаживающего конденсатора. Что будет, если повесить 1000 мкФ, нарисовано чуть ниже. Формулы готовой нет, но по картинке всё предельно понятно - конденсатор заряжается практически до значения "пиков" синусоиды.
-
Конденсатор зарядится до амплитудного напряжения, т.е. 24.6 * sqrt(2), а вольтметр показывает (должен, во всяком случае) действующее. Только ещё падение на диодах надо б учесть. Короче говоря, вольтметру теорию опровергнуть не удалось - расхождение в вольт-полтора будем считать его погрешностью.
-
SPI на ARM
esaulenka ответил cinema_effect тема в ARM, 32bit
Нарыл пример от NXP. Да, что-то они замороченное написали, для демонстрации всего-всего. На самом деле, всё крайне просто: void SPI_Init(void) { LPC_SSP0->CR1 = 0x0000; // Запрет работы SPI0 // SPI_SCR + 1 = Дополнительное (после SSP0CLKDIV и после SSP0CPSR) деление частоты = 1, // Режим SPI = 0 (CPHA = 0, CPOL = 0), Формат кадра SPI, Кадр = 8 бит LPC_SSP0->CR0 = 0x0007; // Clock prescale, even values: 2..254 LPC_SSP0->CPSR = 0x0002; // Минимальное значение; 18 МГц при частоте контроллера 36 МГц LPC_SSP0->IMSC = 0x0000; // Запрет все возможных источников прерывания от SPI0 // Включаем SPI0 LPC_SSP0->CR1 = 0x0002; // Очистка FIFO while( LPC_SSP0->SR & BIT(2) ) // Receive FIFO Not Empty LPC_SSP0->DR; // На всякий случай сбросим м/с памяти ACTIVE_SPI(); DEACTIVE_SPI(); return; } // Передает и в это же время принимает байт uint8_t SendByteSPI (uint8_t data) { LPC_SSP0->DR = data; while( LPC_SSP0->SR & BIT(4) ) // SPI0 busy ; return LPC_SSP0->DR; } Это писано под LPC1111, но модуль SSP у него точно такой же - тут просто коллега комментариев красиво понаписал :-) -
SPI на ARM
esaulenka ответил cinema_effect тема в ARM, 32bit
мысли: - поменять осциллограф (что это? USB-приставка?) или замедлить всё происходящее на порядок, а то и на два, снизив частоту SPI. Как заработает, можно потихоньку возвращать всё назад. - в целях отладки удобнее отправлять не непонятный *text, а какие-то заранее известные значения, чтобы было понятно, что ждать на осциллографе. - поддержу идею посмотреть примеры. SPI_Send обычно пишется с одним while'ом, но при этом с вычитыванием принятого (чтобы не найти граблей при работе SPI_Receive). - прерывания для этого модуля совершенно необязательны. У меня всё прекрасно работает без них, более того, с прерываниями лично я написал бы гораздо медленнее и запутаннее (так, прикидки на пальцах). -
ISP: в эхе пропадают символы перевода строки
esaulenka ответил guest53493 тема в ARM
Микро-советик. Делал программатор для LPC1111, тоже было лень разбирать, что за эхо валится. Послал команду отключения эха, и несколько дней разбирался, что за хрень происходит. Почему-то чтение прошивки (для проверки) при отключенном эхе работало совершенно некорректно. Помучался-помучался и включил эхо обратно. Не так и сложно его отрабатывать (во всяком случае, если оно себя "штатно" ведёт). Не исключаю, конечно, что у меня руки кривые, но на идеальность NXP'шного загрузчика теперь не расчитываю :-) Посмотрел: побайтово эхо сравнивать я поленился, но длина "что послали" и "что отразилось" совпадает. Все отправляемые строки заканчиваются /r/n, если что. -
Маленький советик: не надо этим злоупотреблять. Проблемы вида "я сохранил переменную в буфер, вызвал совершенно постороннюю функцию, которая для своих целей попользовалась тем же буфером, а потом в первой функции продолжил работать со своей переменной" могут попортить много нервов. В вышеописанной ситуации всё просто и понятно, но когда код чужой, уровней вложенности - штуки 3, а переменная портится далеко не всегда... Самое забавное - это костыли вида "тут я сохраню переменную из буфера в локальную копию, вызову функцию, а потом восстановлю буфер". Т.е. автор о проблеме знал, но ничего с ней не сделал.
-
Младшие LPC2000
esaulenka ответил toweroff тема в ARM, 32bit
Ну неправда ведь! Прямо в документации написано - чем меньше у слота прерывания (VICVectAddrN, VICVectCtrlN) номер, тем больше у него приоритет. Это я ещё про FIQ не вспомнил... В общем, рекомендую читать документацию ;-) Можно начать с user manual, раздел VIC, подраздел Description. С великими гуру, которые, не зная задачи, могут утверждать "это надо, а это не надо", спорить не хочется. -
LCD шкала, прогресс бар.
esaulenka ответил adc тема в В помощь начинающему
Не, ну можно, конечно, обойтись без деления. Например, вот так: номер знакоместа = (значение * 85) >> 8 Только зачем этот геморрой? На скорости это не должно сильно сказаться - экран чаще 10-20 раз в секунду смысла обновлять нет. Объем программы разве что... -
АЧХ ОУ
esaulenka ответил mib383 тема в Схемотехника
там вот эта ссылка была вставлена (слегка криво) однако вопрос я даже с картинкой не понял -
Можно ли заменить 74VHC244 на 74AC244
esaulenka ответил baglaykkr тема в Схемотехника
Почитайте ещё и вот эти рассуждения, довольно любопытно. -
Хочется всё-таки заметить, что слова "студент" и "разгильдяй" синонимами не являются. Я вот надеюсь, что в бытность первым, вторым был в пределах нормы :) При написании диплома очень, просто ОЧЕНЬ не хватало советов грамотных специалистов. Они у нас на кафедре были (и, надеюсь, ещё есть! долгие лета!) но, к сожалению, уровень знаний 20-30 летней давности... А помоложе кто - так и не знали нифига... :( Любой вопрос сводился к какой-то пустой демагогии :(
-
Защита от перенапряжения
esaulenka ответил king2 тема в В помощь начинающему
R35 - это обычные контактные площадки, а DNP - это "do not place" ;)