Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: Halil Gök - 22 Kasım 2019, 09:30:46

Başlık: STM32F0 da microseconds delay nasıl oluştururum ?
Gönderen: Halil Gök - 22 Kasım 2019, 09:30:46
İnternette  DWT_stm32_delay kütüphanesini dahil ettim fakat bu kütüphanenin .h uzantılı dosyasında kartı stm32f103 var başlangıçta onu stm32f0'a çektiğimde hatalar alıyorum. stm32f0 ile ilgili yazılmış bir kütüphane göremedim. işlemciyi mikrosaniyede sürmek istiyorum.


(https://i.ibb.co/cw7h2Cv/saljdlasf.png) (https://ibb.co/cw7h2Cv)
Başlık: Ynt: STM32F0 da microseconds delay nasıl oluştururum ?
Gönderen: robikod - 22 Kasım 2019, 13:44:56
Şöyle bir şey yapabilirsiniz belki, Belirli milisaniyede sayan bir timer oluşturup o timer içerisine counter değeri ekleyebilirsiniz. mesela 1 ms Timerına sahipseniz, counter değeriniz her ms de 1 artar.
Başlık: Ynt: STM32F0 da microseconds delay nasıl oluştururum ?
Gönderen: Elektroemre - 22 Kasım 2019, 14:15:31
Systick timer'dan direkt milisaniye küsüratı alınabilir.

uint64_t micros()
{
uint32_t millis, microsL;

uint32_t dummyRead = SysTick->CTRL;

do
{
millis = tickCounter;
microsL = SysTick->VAL;
}
while(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk);

uint64_t microsVal = (uint64_t)millis * 1000 + ((SysTick->LOAD + 1 - microsL) * 1000) / SysTick->LOAD;

return microsVal;
}