Мне необходимо быстро менять состояние линии порта (програмно, без таймеров и прочего аппаратного). Пишу кусочек кода для проверки скорости функций управления линией порта portC.13.
Код
while (1)
{
HAL_GPIO_TogglePin(GPIOC, 1 << 13);
}
Получаю меандр с частотой порядка 2.4MHz.
Это очень медленно. Посмотрел как работает функция и переписал код так:
Код
while (1)
{
GPIOC->ODR ^= 1 << 13;
}
Получил меандр 8.4 MHz
Уже лучше, но все равно очень медленно. Учитывая что ядро летает на скорости 168 MHz.
Подскажите пожалуйста как сделать управление эффестивнее и быстрее.
Сообщение отредактировал IgorKossak - May 21 2014, 14:49
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!