Ну зачем эта жесть с delay'ями, если 1-wire прекрасно можно в виде конечного автомата сварганить на UART+DMA или TIM+DMA? И не нужно будет две ноги тратить: у UART есть режим полудуплекса по одному проводу, с таймером еще проще (CC2 в режиме захвата вешается на ту же ногу, что и CC1 в режиме ШИМа).
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
А потом еще удивляется, чего это его на других форумах забанили! Да за это и забанили: за извращения в самой жестокой форме!
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Не за это меня забанили.А за то что я пошутил что за 100 доларов сделаю работу с таймером AVR.А модератор просил 400 это за что за поффисионализм?А насчёт USART-DMA 1_Wire.Куплю переходник и буду эксперементировать на железке.А сейчас с 22.12 .2021 я без работы.На Украине туго.
Да какая разница - на ногодрыге или не на ногодрыге? Главное - попробовать, что-то сделать, получить результат. А потом уже можно и совершенствовать, переносить на уарт например. Пусть автор хоть как-то сделает уже, поймет как это работает, а там видно будет.
Что сейчас есть из железа? Есть STM32 (какие), ST-Link, DS18B20, резисторы, конденсаторы, провода, паяльник и т. д.? При отсутствии всего перечисленного, можете использовать протеус если комп мощный (симуляция STM32 затратна по ресурсам).
Текущую версию. Для симуляции STM32 нужен мощный комп (в первую очередь, производительный процессор и быстрая оперативная память), иначе симуляция в реальном времени будет невозможной.
ivan dimir писал(а):
Хочется железо поберечь.
В смысле чтобы не вывести из строя или не перетирать флеш? В последнем случае, отладка в ОЗУ поможет.
Ну зачем эта жесть с delay'ями, если 1-wire прекрасно можно в виде конечного автомата сварганить на UART+DMA или TIM+DMA? И не нужно будет две ноги тратить: у UART есть режим полудуплекса по одному проводу, с таймером еще проще (CC2 в режиме захвата вешается на ту же ногу, что и CC1 в режиме ШИМа).
Так TIM+DMA?Или UART+DMA? В CubeIDE отладка на таких платках проблематично.А какие требования системные ОС?И какой протеус?
Так TIM+DMA?Или UART+DMA? В CubeIDE отладка на таких платках проблематично.А какие требования системные ОС?И какой протеус?
Отвечаю последовательно. И TIMx+DMA, и UART1+DMA не потребуют задействования двух ног. Про другие UART'ы мне лень читать - есть ли там полудуплексный режим. На калокуб мне насрать, сам знаешь. И презираю использующих это говнище. Требований к ОС никаких нет. Можешь даже на игровой приставке все это делать, если тебе слишком сложно в линуксе или бсд работать. Протеус - без понятия, что это за УГ. Слышал неоднократно, но ни разу не видел. Думаю, тебе лучше с этим куском УГ не связываться.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Ну как не требует USART-DMA TIM-DMA требует по две ноги RX TX я так понимаю.Ну если я не правильно понял то вы выскажите правильную информацию.Да и примеров по USART-DMA и TIM-DMA мало .А вообще на 1-wire ds18b20 USART-DMA и TIM-DMA это разные программы. Или одна ?
Нет, неправильно понимаешь. А ссылку на реализацию с таймером я ещё в самом начале давал.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
У меня вопрос от аматора к вам профи а могли бы вы в кратце на пальцах объяснить принцып USART-DMA 1-wire. Прицип таймера как он работает .Как он реализует протокол 1-Wire ?.Я чужие исходники плохо умею читать.
На уарте пусть тебе расскажет тот, кто на нем делал. Я делал на таймере, ссылку в самом начале давал. Принцип элементарный: сначала ты "послание" зашифровываешь побитно и в каждый элемент массива uint8_t складываешь значения регистра CC1 таймера, на котором делаешь это дело. Из регистра CC2 будешь забирать захваченные данные. Таймер одновременно как бы генерирует шим на CC1 и захватывает сигнал на CC2. После передачи разбираешь данные, которые через DMA приплыли из регистра CC2, да дешифруешь. Естественно, мультиплексор соединяет CC1 и CC2 на одной ноге.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
NVIC_EnableIRQ(TIM1_UP_IRQn); // last interrupt to turn timer off NVIC_EnableIRQ(DMA1_Channel2_IRQn); dsstate = DS18_SLEEP; }
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения