vshurik, ну раз адекватно, так пользуйтесь. Но надо понимать, что аппаратный способ будет существенно точнее, о чём вам ssss уже несколько раз сказал. У дуе есть навороченный 32-битный таймер, который может взять на себя вообще всё, и сделает это всё с максимально возможной для этого МК точностью. Вам останется в loop только вычесть значение одного регистра захвата из другого.
void SysTick_Handler(void) {
// Тут делаем что-то полезное
}
вставляю в код, а он не комплируется.
пишет:
Arduino: 1.8.5 (Windows 10), Плата:"Arduino Due (Programming Port)"
Archiving built core (caching) in: C:\Users\8523~1\AppData\Local\Temp\arduino_cache_104864\core\core_arduino_sam_arduino_due_x_dbg_f03bc1497c21bab2a485c6edb88e6f7c.a
C:\Users\8523~1\AppData\Local\Temp\arduino_build_375163/core\core.a(cortex_handlers.c.o): In function `SysTick_Handler':
C:\Users\Александр\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino/cortex_handlers.c:47: multiple definition of `SysTick_Handler'
sketch\systick.ino.cpp.o:D:\arduino\systick/systick.ino:17: first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
Ошибка компиляции для платы Arduino Due (Programming Port).
.del.
Производители МК от фонаря периферии... наверное... напичкали...del.
.del.
.del.
.del.
.del.
Ну вот и встретились баран и новые ворота ;)
на просторах интернета нашел про системный таймер ARM, плата китайская Arduino DUE.
Вроде все адекватно работает.
Жду конструктивной критики, может что кто посоветует.
vshurik, ну раз адекватно, так пользуйтесь. Но надо понимать, что аппаратный способ будет существенно точнее, о чём вам ssss уже несколько раз сказал. У дуе есть навороченный 32-битный таймер, который может взять на себя вообще всё, и сделает это всё с максимально возможной для этого МК точностью. Вам останется в loop только вычесть значение одного регистра захвата из другого.
подскажите по прерванию systick
вставляю в код, а он не комплируется.
пишет:
Arduino: 1.8.5 (Windows 10), Плата:"Arduino Due (Programming Port)"
vshurik, вам же компилятор английским по белому написал - дофига назначений на вектор. Короче он уже занят, иначе бы системные тики не работали.
как я понял, systick->val считает от 83999 до 0 (по времени 1мс), в момент счета с 1 на 0 вызывает прервание.
читал вот здесь http://stm32.chrns.com/post/149112836514/systick
Вот мне в этот момент нужно инерементировать перменную на 1 (считать количестов отсчетов с 83999 до 0), для и измерения интервала времени >1мс.
А чё вы тут... SAM3X...
Нус... кто даташит читать начнёт??? ))))))))
мы даташиты начинаем читать когда "НУ НЕ ПОЛУЧИЛОСЬ" )))