Как получить на Uno импульс длительностью 0.5 мкс ?
- Войдите на сайт для отправки комментариев
Сб, 02/05/2015 - 21:32
Как получить на Uno импульс длительностью 0.5 мкс и менее?
Как получить на Uno импульс длительностью 0.5 мкс и менее?
Примерно так:
pinMode(13, OUTPUT); // 16 MHz - это 16 тактов на 1 мкс, 0.5 мкс = 8 тактов cli(); // запрещаем все прерывания PORTB |= 1<<5; // устанавливаем высокий уровень asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); // ждем 6 тактов PORTB &= ~(1<<5); // устанавливаем низкий уровень, занимает 2 такта sei(); // разрешаем прерыванияНу а как сделать меньше думаю ясно.
Спасибо, попробую!