ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
542774 Топик полностью
Связанные сообщения
Микропотребление
Каким мультиметром можно измерить средний потребляемы ток за (например) 5 минут. Питание девайса батарейное, импульсное. Диапазо...2024-11-06
[Ideal Diode] ORing мелкие микропотребляющие Reverse Current Blocking2024-06-06
X-post: Необходим-ли низкочастотный кварц для AVR? Влияние CLKPR на энергопотребление. [Upd] Выгрузил файл сюда ввиду переделки ...2023-09-11
Доброе время суток, подскажите пожалуйста из личного опыта, в выборе микрокотроллера ультра минималка потребление, для батареечн...2022-01-25
Профиль потребления микроконтроллера от батарейки, кто чем смотрит?2021-01-20
Ну вот SOSUS свой доделаешь и предъявишь.2020-08-14
const везде приведён разный (и непонятно почему именно такое значение), поэтому с ним сравнивать нет смысла. Можно...2020-08-14
Субпороговое поведение MOSFET для аналоговых применений2020-07-20
Микропотребляющие сдвоенные компараторы со встроенной опорой2020-04-08
Микропотребление. Тема неплохо разработана для носимых устройств, но для embedded мало что есть. Если кого-то интересует данная ...2020-03-31
Топик посвящён программированию микроконтроллеров в условиях необходимости экономии электроэнергии и архитектуре ПО в целом.2011-10-24
Точка опоры (28.08.2014 11:17 - 20:58, просмотров: 959) ответил De_User на Как можно на ATmega88 или ATTINY получить статическое состояние выходов? Типа нажал кнопку "Reset" и состояние выходов изменяется по кольцу (00->01->10->11->00) и после смены МК стаётся в статике, без генерации тактовой частоты?
Недавно делал такое. Если не к спеху - вечером из дома закину код. Upd: /* Такой вот бред - микропотребляющий триггер (многопозиционный) на ATtiny15L. Всё равно их есть излишек. */ .equ debug = 0 .equ number = 2 // Число состояний (выходов, минимум - 2, максимум - 5) .equ level = 0 // "0" - переключение по спаду на PB5, "1" - по фронту .def temp1 = r16 .def temp2 = r17 .def counter = r18 // Состояние .nolist .include "tn15def.inc" .list .cseg .org 0x0 rjmp start rjmp start reti nop nop nop nop nop nop start: /* По каждому импульсу на PB5 - очередной вывод порта переключаются в "0" */ ldi temp1,(1<<ACD) out ACSR,temp1 // Откл. аналоговый компаратор ldi temp1,~(1<<DDB5) out DDRB,temp1 // PB5 - счётный вход ser temp1 out PORTB,temp1 // Порт - выходы в "1" // Формируется защитный интервал (около 2 мс) даже если если это "холостой" фронт. clr temp1 out OSCCAL,temp1 // Мин. частота andi counter,((1<<number)-1) mov temp2,counter // Состояние счётчика нарушено? sbrc temp2,0 inc temp1 ror temp2 sbrc temp2,0 inc temp1 ror temp2 sbrc temp2,0 inc temp1 ror temp2 sbrc temp2,0 inc temp1 ror temp2 sbrc temp2,0 inc temp1 ror temp2 cpi temp1,1 breq good_state ldi counter,2 // Было более 1 единицы или все нули rjmp no_ovf // Установить начальное состояние good_state: clr temp2 debounce_1: inc temp2 brne debounce_1 // Задержка ~ 1 мс clr temp1 ldi temp2,1 debounce_2: .if level==0 sbis PINB,PINB5 .else sbic PINB,PINB5 .endif inc temp1 inc temp2 brne debounce_2 // cpi temp1,0x15 cpi temp1,0x55 brlo no_ovf // Наличие требуемого перепада не подтверждено lsl counter // Счёт ldi temp2,(1<<number) and temp2,counter breq no_ovf ldi counter,1 // Закольцевать счётчик no_ovf: mov temp1,counter com temp1 out PORTB,temp1 // Переключить порт wait: .if debug==0 nop ldi temp1,(1<<PCIF) out GIFR,temp1 // Сброс Pin change interrupt ldi temp1,(1<<PCIE) out GIMSK,temp1 // Pin change interrupt ldi temp1,(1<<SE) | (1<< SM1) out MCUCR,temp1 // Power down sei sleep nop cli .endif rjmp start .exit // EOF
1. Изо всех сил стараюсь не кормить троллей. 2. Продаю импортные ЭК - https://shop.fulcrum.ru/buy