Идея такая: сделать на АВР аналог советского чипа УМС8. А в самом идеальном случае - сделать, чтобы чип выдавал мелодию в два голоса, т. е. две частоты сразу. Можно в принципе и на 25 (вернее, 85), но тогда придётся отказаться от тактирования кварцем - не хватит ног под три управляющих входа.
_________________ Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
здорово, буду следить за проектом. если дверной звонок, то, имхо, и без кварца можно обойтись, делал на тине 2313 и микроСД карте дверной звонок (ВАВ проигрыватель) и без кварца ничего не "уплывает". а если заплавает - значит скоро менять батарейки...
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
скорее всего заткнётся - тут индивидуально пробовать надо (ну и понятно, меньше частота - меньше напруга, но не до фанатизма), ещё, т.к. первыми при снижении напруги загибаются еепром и генератор (если БОД не включен), то может помочь внешний генератор.
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
БОД включать нет смысла - он очень сильно жрёт энергию (до 20 мкА в слипе). ЕЕПРОМ не нужен вообще. Генератор скорее всего придётся использовать встроенный - нужно два ШИМ выхода и три управляющих входа, все линии будут заняты.
_________________ Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Не могу пока придумать, как делать затухание звука. В оригинальной УМС это ведь как-то сделано. Тут приходит в голову разве что ШИМить таймером с очень высокой частотой...
_________________ Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
то ли лыжи не едут то ли..... захотелось посмотреть как таймер Т0 работает,почитал шит вроде ниче сложного...но видимо что-то упущено.... задумано дрыгать ножкой в прерывании по совпадению. OCR0-выбран рандомно. Спойлер
коротить сигнал через батарею резисторов на массу (по аналогии с цап)
Добавлено: или даже ещё проще - играться не только частотой, но и заполнением
Добавлено after 4 minutes 30 seconds:
ROMan2947 писал(а):
то ли лыжи не едут...
наверно лыжи
ROMan2947 писал(а):
задумано дрыгать ножкой в прерывании по совпадению.
а в коде ISR(TIMER0_OVF_vect) по переполнению... второй делай_мс(1) не нужен (сам подумай почему) ну это так, на первый взгляд...
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
TIMER0_OVF_vect = Timer0 OVeFlow vector = таймер0 переполнения вектор а должно быть таймер0 совпадения вектор = timer0 compare vector = TIMER0_COMP_vect примерно (я не в студии работаю, потому правописание может отличаться)
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Последний раз редактировалось Ivanoff-iv Ср фев 28, 2018 09:21:03, всего редактировалось 1 раз.
поправил: COMPA=>COMP тут надо обратить внимание, что регистров совпадения может быть один, а может и больше, тогда они помечаются вконце буквами A, B например в CVAVR обработчик совпадения по регистру B выглядит interrupt [TIM0_COMPB] void timer0_compb_isr(void) {тело обработчика}
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
она и будет молчать, но, вот возьмёт и, в рамках оптимизации, пустого цикла не сделает, а майн программа не должна кончаться.
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
возможно этим грешили старые версии, но тот, кто один раз нарвётся, и сам перестраховываться будет, и другим расскажет
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
В прерывании по таймеру произвожу опрос клавиатуры из тактовых кнопок (4шт.) осциллографом замерил время нажатия кнопки в районе 250 мс. Выставляю предделитель 1024 и при записи в OCR0=255, по расчетам получаю время 32640 мкс =32,64 мс. Это что максимально время,на которое можно выставить таймер?За время нажатия кнопки МК уйдет в прерывание почти 8 раз кварц 8МГц. при 32 мс в меню пункты проскакивают до крайнего. до использования таймера выставлял _delay_ms(100); работало стабильно.
Спойлер
Код:
ISR(TIMER0_COMP_vect) { for(char i =stroka_1; i>=stroka_2;i--) {
или даже ещё проще - играться не только частотой, но и заполнением
То есть задавать звуковую частоту и менять ширину импульса? Это меняет не только громкость, но и тембр звука, особенно если давать сигнал на динамик, а не на пьезопищалку.
_________________ Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
да, короткий импульс даст слышымую вторую (а может и больше) частоту, придется RC фильтр добавить — короткий импульс зарядит кондей слабже, чем длинный - будет изменение амплитуды, заодно вч наводки посрезает.
В прерывании по таймеру произвожу опрос клавиатуры
Ты на верном пути, осталось добавить счётчк, чтобы не кидаться выполнять первый же сигнал. (будет отдельно регулируемая задержка и повтор). счетчик достаточен один и один буфер — сравниваем карту нажатых клавиш с сохранённой в буфере если не равны - сбрасываем счетчик, если равны инкрементируем счетчик, если счет дошел до порога - выполняем действие и сбрасываем счетчик на величину разницы между задержкой и повтором (чтобы в следующий раз дошел быстрее). ПС: чем чаще опрашивается клавиатура, тем плавнее и предсказуемей она работает (один раз за задержку - очень плохо, т.к. этот таймер тикает независимо и можно очень коротким тычком попасть в момент опроса, а можно и более длинным не попасть. 8 раз - уже хорошо, не будет заметного дрожжания врпмени срабатывания кнопок).
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Добавлено after 18 minutes 3 seconds: Решил испробовать Т1 в режиме захвата.Для этого достал ультразвуковой датчик расстояния НС_SR04. в одном из примеров нашел, что после импульса команды на измерения в цикле while(status); ждем окончания измерения, в моем коде программа зацикливается не могу понять почему,да и дебагером никак не могу отловить...а если убрать проверку завершения измерения программа работает,но вывод TRIG захламляется командами на начало измерения. И еще вопрос,правильно считать,что во время задержки _delay_ms() прерывания могут уходить в вектор? Спойлер
Сейчас этот форум просматривают: Demiurg, Google [Bot] и гости: 30
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения