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

Вопросы от начинающих по МК


Рекомендуемые сообщения

Так получилось, что в одном интересном устройстве, надо было часто крутить эту штуку (Rotary Encoding Switch 4-bit ). Во первых это было неудобно, во вторых хотелось дистанционно. А еще оно часто ломалось. 

Attiny2313, пара кнопок и четыре транзистора. Ну и лед индикатор. Да старые знакомые:D

Надо все спаять аккуратным проверенным навесным монтажем и в бой

Такую штуку можно ставить для конфигурирования устройств. Используя четыре входа - подать шестнадцать команд. Вещь имеющая право на жизнь.:)

Изменено пользователем si4karuk
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 8,9т
  • Создана
  • Последний ответ

Топ авторов темы

Ну только если для долговременных настроек. И то , целых 4 бита убить на это. Есть же энкодер с кнопкой. Те же 4 бита, только ты управляеш целым меню и используеш еепром для долговременных настроек. Это куда разумнее и ресурсоэкономнее.

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

11 час назад, IMXO сказал:

Витя, ты представляешь в какую асмовскую портянку развернется твой код? :)

ldi	r17,[сдвинутое на 2 бита влево число]
in	r16,PIND
andi	r16,0b11000011
or	r16,r17
out	PORTD,r16

 

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Это просто решение (взгляд со стороны Ассма). С позиций Си, как ни крути, всегда портянка получается (даже если листинг лаконичный).:)

Ссылка на комментарий
Поделиться на другие сайты

  Здравствуйте. Столкнулся с такой проблемой. На МК создал генератор, потом во вне МК преобразую его в синусоиду, далее на индуктивном датчике фаза сдвигается, либо в плюс либо в минус.  Компаратор преобразует синусоиду снова в прямоугольник, сдвинутый по фазе.  

    Проблема в том, что возникают паразитные фазовые колебания на участке равном величине  сдвига фазы. Если фаза опорного генератора и сигнала на выходе компаратора  совпадают,  то колебаний нет.

 При симуляции в ПРОТЕУСЕ это наблюдалось, но решил, что компьютер не справляется, но и железе это повторилось, правда характер поведения сильно отличается.  ЧТО это паразитная связь в самом кристалле или что-то другое?

  P.S.  Устройство собрано на макетной плате.

Screenshot_7.png

Ссылка на комментарий
Поделиться на другие сайты

@RA3DTI , покажите схему и обозначьте точки, в которых смотрите. Пока мало что понятно.

Кроме схемы, желательно знать также уровень сигнала с датчика, а если возможно, то посмотреть осциллограммы всех сигналов.

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Lexter сказал:

@RA3DTI , покажите схему и обозначьте точки, в которых смотрите. Пока мало что понятно.

 

Lexter. Вот схема в протеусе. В реальной схеме компонентов больше, но я их не стал размещать чтобы не перегружать симулятор.

Фотки с осциллографа не получаются.

В симуляторе графики тоже сильно дергаются, кроме синусоиды и опорного генератора, стоит как вкопанный!

Screenshot_17 PROT.png

Screenshot_17PR2.png

Screenshot_17PR3.png

Изменено пользователем RA3DTI
Ссылка на комментарий
Поделиться на другие сайты

Только что, snn_krs сказал:

У компаратора нет физического внешнего выхода. Как у вас осуществляется выход компаратора.

Попробуйте внешний компаратор.

но можно организовать. 

while(1)
    {
        ACSR|=(1<<ACIE)|(1<<ACIS1)|(1<<ACIS0);  //Инициализация компаратора. ИОН=0.
       if(ACSR&(1<<ACO)){PORTC|=(1<<PC2);}
       else {PORTC &=~(1<<PC2);}           //Выход компаратора PC2

вообще стараюсь минимизировать число внешних компонентов.

Ссылка на комментарий
Поделиться на другие сайты

9 minutes ago, RA3DTI said:

вообще стараюсь минимизировать число внешних компонентов.

Это правильно, но нужно определить что не работает компаратор или таймер.

Если таймер не правильно настроен то его выход подключается к входу захвата таймера 1 и будут проблемы.

Ссылка на комментарий
Поделиться на другие сайты

Генератор собран на таймере 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 не задействован, но на всякий случай отключу.

Изменено пользователем RA3DTI
Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, RA3DTI сказал:

Вот схема в протеусе.

 

Не понял, в каких "попугаях" на этом осциллоскопе смещение по вертикали, но очень вероятно, что синусоидальное напряжение, поступающее на вход компаратора, заходит в область отрицательных напряжений. Проверьте.  Компаратор не может нормально работать при отрицательных напряжениях на входах. Напряжение на любом из входов должно быть в пределах от GND до напряжения питания.

Ссылка на комментарий
Поделиться на другие сайты

Только что, Lexter сказал:

 

синусоидальное напряжение, поступающее на вход компаратора, заходит в область отрицательных напряжений.......     Напряжение на любом из входов должно быть в пределах от GND до напряжения питания.

Да. Симулятор позволяет некоторые вольности:rolleyes:. В реальной схеме отрицательная полуволна срезана. Да и в симуляторе она всего 0,4V       (Амплитуда 0,8V)

А вообще и в реальной схеме она уходит на -0,07V (ТЩАТЕЛЬНО РАССМОТРЕЛ ОСЦИЛЛОГРАММУ:huh:) При положительной 1,3V

Ссылка на комментарий
Поделиться на другие сайты

13 часа назад, RA3DTI сказал:

в реальной схеме она уходит на -0,07V ... При положительной 1,3V

Ну и как будет работать компаратор, даже если он идеальный, если вы опорное напряжение установили 0,00 V? Чуть "цеплять" по самым верхушкам синусоиды? :)

Надо читать даташиты, там написаны электрические характеристики, в том числе и встроенных компараторов. Посмотрите, какой там допустимый диапазон напряжений на входах, в котором гарантируется нормальная работа компаратора. Если у вас сложности с чтением даташитов, почитайте что-нибудь адаптированное.

Задайте опорное напряжение (-0,07+1,3)/2 = +0,615V, и будет вам чёткое срабатывание.

Изменено пользователем Lexter
Ссылка на комментарий
Поделиться на другие сайты

42 минуты назад, Lexter сказал:

Ну и как будет работать компаратор, даже если он идеальный, если вы опорное напряжение установили 0,00 V? Чуть "цеплять" по самым верхушкам синусоиды? :)

Он не будет цеплять по верхушкам синусоиды, а наоборот будет срабатывать чудь-чудь выше 0,00v. Но согласно датшиту (Так перевёл) этот режим неустойчивый, поэтому схему переделал, пока в симуляторе.

Screenshot_17 M3.png

Ссылка на комментарий
Поделиться на другие сайты

46 минут назад, RA3DTI сказал:

будет срабатывать чудь-чудь выше 0,00v.

Вот именно "ЧУДЬ". Знаете, как со стороны ЧУДНÓ смотреть, как вы упираетесь? :D

Вы бы всё-таки почитали, как работают компараторы и какие у них основные параметры. Тогда "чудь" превратится в "чуть". :)

Ну с какого бодуна опорное поставили +1,6V, если сами говорили, что пиковое напряжение +1,3V? Как он работать будет, если опорное напряжение никогда не пересекается? Оно должно быть МЕЖДУ максимумом и минимумом на входе. В вашем случае желательно ПОСЕРЕДИНЕ .

Ссылка на комментарий
Поделиться на другие сайты

Это новая схема. Размах синусоиды от +1,3v до +2,2v. (это пока симулятор). Без проблем перенесу на реальную схему. В предыдущем варианте синус был от -1.3 до +1.3в, отрицательная часть отсекалась. Компаратор срабатывал при отрыве синуса от 0,0v при нескольких мV в плюсе. Может быть не совсем четко. Опорное 1.6V выставил примерно, подкорректирую.(чудь-чуть:D). Берусь за паяльник.

 

Ссылка на комментарий
Поделиться на другие сайты

Привет.

На прошлой странице, задавался вопросом вывода четырех битного числа в порт.

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");
}

А как прокрутить эту функцию в обратном направлении? 

Ссылка на комментарий
Поделиться на другие сайты

int input_bit_port()
{
	unsigned int chislo = 0x0f&(~PINC);
  	return chislo;
}

Что то типа этого только с масками. Нужно обработать только РС0, РС1, РС2, РС3 из них выделить число от 0 до 15

Изменено пользователем si4karuk
Ссылка на комментарий
Поделиться на другие сайты

12 минуты назад, si4karuk сказал:

Нужно обработать только РС0, РС1, РС2, РС3 из них выделить число от 0 до 15

а вы в этой функции разве не это сделали? только я не могу понять накой это загонять в функцию , пишете индусский код?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...