Доброго дня!
понадобилось генерить тактовые импульсы на STM.
Скважность не имеет значения, а имеет значение быстродействие кода.
По этому поводу меня посетила одна авантюрная мысль, требующая подтверждения/опровержения.
А что если в BSRR писать, например 0x01000100. т.е. одной командой записи и установить и сбросить один и тот же бит.
Будет ли при этом "проскакивать" наносекундный импульс, или же вся идея упрется в тактирование порта?
amv2000 писал(а):А где тут установка и сброс одного и того же бита? Вижу только установить 2 и 6 бит.
это шестнадцатеричная форма записи 32 битного числа... и бит этот 8й(считая с нулевого)
0x00800080 - а это 7го. Так понятней ? =)
оба полуслова(по 16 бит) одинаковы, только одно представляет маску для сброса, а другое для установки. А пишутся они за одну команду.
balmer писал(а):
А почему нельзя воспользоваться таймером
Скорей всего отсутствие знаний и понимания архитектуры .
А вот быстродействие понятие относительное.
Если бы FPGAlover озвучил конечную цель а не свои надумки , можно было бы задействовать что-то из периферии .
А в целом - все как всегда, каждый нуб пытается софтовым ногодрыгом добить свои мечты...
dosikus писал(а):Если бы FPGAlover озвучил конечную цель а не свои надумки , можно было бы задействовать что-то из периферии .
конечно можно.
Цель получить конечное к-во выборок со внешнего параллельного АЦП. с частотой порядка 30-40мгц. (sysclk=168)
Рассматривался вариант ногодрыга, хотя видно еще 2 бм нормальных варианта:
1. варианты(включая ДМА) с тактированием через MCO/таймер (некоторая асинхронность).
2. Через FSMC + ДМА
Однако, с ходу не очевидно, не придется ли читать данные в момент их смены (в 1м случае)
второй же вариант смотрится отлично.
Вопрос же был задан в академических рамках и...
dosikus писал(а): читай RM - Note: If both BSx and BRx are set, BSx has priority.
является исчерпывающим ответом, а прочие инсинуации надуманы течением темы, не относящейся к вопросу.