si4karuk Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 (изменено) Так получилось, что в одном интересном устройстве, надо было часто крутить эту штуку (Rotary Encoding Switch 4-bit ). Во первых это было неудобно, во вторых хотелось дистанционно. А еще оно часто ломалось. Attiny2313, пара кнопок и четыре транзистора. Ну и лед индикатор. Да старые знакомые Надо все спаять аккуратным проверенным навесным монтажем и в бой Такую штуку можно ставить для конфигурирования устройств. Используя четыре входа - подать шестнадцать команд. Вещь имеющая право на жизнь. Изменено 2 декабря, 2018 пользователем si4karuk 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Viktor26 Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Ну только если для долговременных настроек. И то , целых 4 бита убить на это. Есть же энкодер с кнопкой. Те же 4 бита, только ты управляеш целым меню и используеш еепром для долговременных настроек. Это куда разумнее и ресурсоэкономнее. 0 Не знаеш как? Спроси у Google'а !!! Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
si4karuk Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Да, но не всегда нужен дисплей, и выход в интернет. Иногда самые крутые сименсы используют такие закавыки )) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Геннадий Опубликовано 3 декабря, 2018 Поделиться Опубликовано 3 декабря, 2018 11 час назад, IMXO сказал: Витя, ты представляешь в какую асмовскую портянку развернется твой код? ldi r17,[сдвинутое на 2 бита влево число] in r16,PIND andi r16,0b11000011 or r16,r17 out PORTD,r16 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 3 декабря, 2018 Поделиться Опубликовано 3 декабря, 2018 @Геннадий позвольте узнать , это вы листинг какого кода привели? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Геннадий Опубликовано 3 декабря, 2018 Поделиться Опубликовано 3 декабря, 2018 Это просто решение (взгляд со стороны Ассма). С позиций Си, как ни крути, всегда портянка получается (даже если листинг лаконичный). 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RA3DTI Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 Здравствуйте. Столкнулся с такой проблемой. На МК создал генератор, потом во вне МК преобразую его в синусоиду, далее на индуктивном датчике фаза сдвигается, либо в плюс либо в минус. Компаратор преобразует синусоиду снова в прямоугольник, сдвинутый по фазе. Проблема в том, что возникают паразитные фазовые колебания на участке равном величине сдвига фазы. Если фаза опорного генератора и сигнала на выходе компаратора совпадают, то колебаний нет. При симуляции в ПРОТЕУСЕ это наблюдалось, но решил, что компьютер не справляется, но и железе это повторилось, правда характер поведения сильно отличается. ЧТО это паразитная связь в самом кристалле или что-то другое? P.S. Устройство собрано на макетной плате. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lexter Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 @RA3DTI , покажите схему и обозначьте точки, в которых смотрите. Пока мало что понятно. Кроме схемы, желательно знать также уровень сигнала с датчика, а если возможно, то посмотреть осциллограммы всех сигналов. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RA3DTI Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 (изменено) 3 часа назад, Lexter сказал: @RA3DTI , покажите схему и обозначьте точки, в которых смотрите. Пока мало что понятно. Lexter. Вот схема в протеусе. В реальной схеме компонентов больше, но я их не стал размещать чтобы не перегружать симулятор. Фотки с осциллографа не получаются. В симуляторе графики тоже сильно дергаются, кроме синусоиды и опорного генератора, стоит как вкопанный! Изменено 7 декабря, 2018 пользователем RA3DTI 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
snn_krs Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 У компаратора нет физического внешнего выхода. Как у вас осуществляется выход компаратора. Попробуйте внешний компаратор. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RA3DTI Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 Только что, snn_krs сказал: У компаратора нет физического внешнего выхода. Как у вас осуществляется выход компаратора. Попробуйте внешний компаратор. но можно организовать. while(1) { ACSR|=(1<<ACIE)|(1<<ACIS1)|(1<<ACIS0); //Инициализация компаратора. ИОН=0. if(ACSR&(1<<ACO)){PORTC|=(1<<PC2);} else {PORTC &=~(1<<PC2);} //Выход компаратора PC2 вообще стараюсь минимизировать число внешних компонентов. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
snn_krs Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 9 minutes ago, RA3DTI said: вообще стараюсь минимизировать число внешних компонентов. Это правильно, но нужно определить что не работает компаратор или таймер. Если таймер не правильно настроен то его выход подключается к входу захвата таймера 1 и будут проблемы. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RA3DTI Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 (изменено) Генератор собран на таймере 2 и работает вроде неплохо, TCCR2 |=(1<<CS21); //CS21 =1(1 бит) делитель 8 TCCR2 |= (1<<WGM21); //WGM21=1(6 бит), WGM20=0(3бит). Режим СТС. Сброс по совпадению. TCCR2 |=(1<<COM20); //COM20=1(4 бит) OCR2 =73; // Регистр сравнения. 10кГц =49 ПРИ Ft=8MHz но я его отключу и подключу внешний генератор, и если проблема исчезнет то это плохо значит это паразитная связь внутри кристалла, а если нет то это проблема монтажа, её можно решить. Таймер 1 не задействован, но на всякий случай отключу. Изменено 7 декабря, 2018 пользователем RA3DTI 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
snn_krs Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 По схеме выход ОС1 задействован, поэтому я думал что генератор на таймер 1 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lexter Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 5 часов назад, RA3DTI сказал: Вот схема в протеусе. Не понял, в каких "попугаях" на этом осциллоскопе смещение по вертикали, но очень вероятно, что синусоидальное напряжение, поступающее на вход компаратора, заходит в область отрицательных напряжений. Проверьте. Компаратор не может нормально работать при отрицательных напряжениях на входах. Напряжение на любом из входов должно быть в пределах от GND до напряжения питания. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lexter Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 Второй вход компаратора не может быть соединён с GND. Пороговое напряжение должно быть посередине размаха входного напряжения. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RA3DTI Опубликовано 7 декабря, 2018 Поделиться Опубликовано 7 декабря, 2018 Только что, Lexter сказал: синусоидальное напряжение, поступающее на вход компаратора, заходит в область отрицательных напряжений....... Напряжение на любом из входов должно быть в пределах от GND до напряжения питания. Да. Симулятор позволяет некоторые вольности. В реальной схеме отрицательная полуволна срезана. Да и в симуляторе она всего 0,4V (Амплитуда 0,8V) А вообще и в реальной схеме она уходит на -0,07V (ТЩАТЕЛЬНО РАССМОТРЕЛ ОСЦИЛЛОГРАММУ) При положительной 1,3V 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lexter Опубликовано 8 декабря, 2018 Поделиться Опубликовано 8 декабря, 2018 (изменено) 13 часа назад, RA3DTI сказал: в реальной схеме она уходит на -0,07V ... При положительной 1,3V Ну и как будет работать компаратор, даже если он идеальный, если вы опорное напряжение установили 0,00 V? Чуть "цеплять" по самым верхушкам синусоиды? Надо читать даташиты, там написаны электрические характеристики, в том числе и встроенных компараторов. Посмотрите, какой там допустимый диапазон напряжений на входах, в котором гарантируется нормальная работа компаратора. Если у вас сложности с чтением даташитов, почитайте что-нибудь адаптированное. Задайте опорное напряжение (-0,07+1,3)/2 = +0,615V, и будет вам чёткое срабатывание. Изменено 8 декабря, 2018 пользователем Lexter 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RA3DTI Опубликовано 8 декабря, 2018 Поделиться Опубликовано 8 декабря, 2018 42 минуты назад, Lexter сказал: Ну и как будет работать компаратор, даже если он идеальный, если вы опорное напряжение установили 0,00 V? Чуть "цеплять" по самым верхушкам синусоиды? Он не будет цеплять по верхушкам синусоиды, а наоборот будет срабатывать чудь-чудь выше 0,00v. Но согласно датшиту (Так перевёл) этот режим неустойчивый, поэтому схему переделал, пока в симуляторе. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lexter Опубликовано 8 декабря, 2018 Поделиться Опубликовано 8 декабря, 2018 46 минут назад, RA3DTI сказал: будет срабатывать чудь-чудь выше 0,00v. Вот именно "ЧУДЬ". Знаете, как со стороны ЧУДНÓ смотреть, как вы упираетесь? Вы бы всё-таки почитали, как работают компараторы и какие у них основные параметры. Тогда "чудь" превратится в "чуть". Ну с какого бодуна опорное поставили +1,6V, если сами говорили, что пиковое напряжение +1,3V? Как он работать будет, если опорное напряжение никогда не пересекается? Оно должно быть МЕЖДУ максимумом и минимумом на входе. В вашем случае желательно ПОСЕРЕДИНЕ . 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RA3DTI Опубликовано 8 декабря, 2018 Поделиться Опубликовано 8 декабря, 2018 Это новая схема. Размах синусоиды от +1,3v до +2,2v. (это пока симулятор). Без проблем перенесу на реальную схему. В предыдущем варианте синус был от -1.3 до +1.3в, отрицательная часть отсекалась. Компаратор срабатывал при отрыве синуса от 0,0v при нескольких мV в плюсе. Может быть не совсем четко. Опорное 1.6V выставил примерно, подкорректирую.(чудь-чуть). Берусь за паяльник. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
si4karuk Опубликовано 8 декабря, 2018 Поделиться Опубликовано 8 декабря, 2018 Привет. На прошлой странице, задавался вопросом вывода четырех битного числа в порт. void out_bit_port(unsigned char chislo) { unsigned char tempPORT; chislo &=0x0F; chislo <<=2; asm volatile ("cli"); tempPORT=PORTD&0b11000011; tempPORT|=chislo; PORTD = tempPORT; asm volatile ("sei"); } А как прокрутить эту функцию в обратном направлении? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 8 декабря, 2018 Поделиться Опубликовано 8 декабря, 2018 что значит в обратном? будьте любезны изъяснятся точнее 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
si4karuk Опубликовано 8 декабря, 2018 Поделиться Опубликовано 8 декабря, 2018 (изменено) int input_bit_port() { unsigned int chislo = 0x0f&(~PINC); return chislo; } Что то типа этого только с масками. Нужно обработать только РС0, РС1, РС2, РС3 из них выделить число от 0 до 15 Изменено 8 декабря, 2018 пользователем si4karuk 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 8 декабря, 2018 Поделиться Опубликовано 8 декабря, 2018 12 минуты назад, si4karuk сказал: Нужно обработать только РС0, РС1, РС2, РС3 из них выделить число от 0 до 15 а вы в этой функции разве не это сделали? только я не могу понять накой это загонять в функцию , пишете индусский код? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.