понадобилось прочитать состояние rgb ws2812b. но уперся в его низкие тайминги а именно при логическом 0 имеем 300 ns высокого и 900 ns низкого, а при логической 1 имеем по 600 ns высокого и низкого уровней.
как я понимаю элементарно на вход прерывания тратится больше времени. не пойму как правильно читать такие вещи?
Если писать о программистско-сексуальных извращениях, то фактически нужно за 17 тактов 16 МГц процессора (за 1200нс) успеть считать состояние пина, сдвинуть и записать в память. Превратить фазовый код в 0-1 реально просто ДО контроллера. Тогда по фронту мы защелкивает результат и обрабатываем.
На пределе, но 17 тактов хватит. Хотя это полный изврат! ИМХО.
Естественно, что значительно проще и умнее взять СТМ32!!!
iopq
А с какой целью возник такой вопрос ? Может Вы не там ищете ? Расширьте немного рамки и может мы чего умного подскажем ! Тут недавно была тема про эти светодиоды и zigbee Адресная лента и zigbee - #136 от пользователя Komandir так я там даже код выложил - как посчитать число диодов в ленте, если есть доступ к выходу крайнего светодиода …
надо в зависимости от состояния диода управлять исполнительным механизмом. можно даже просто отслеживать включен/выключен. я уже думаю фотодиод приспособить
Может проще будет использовать WS2811 в виде восьмилапого соика вместо родного 2812. Вместо светодиодов вкрячить RC-цепочки и сразу готовый сигнал управления получится