10 Aralık 2019, 21:37:11

Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H


STM32F0 da microseconds delay nasıl oluştururum ?

Başlatan Halil Gök, 22 Kasım 2019, 12:30:46

Halil Gök

İ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.




robikod

Şö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.

Elektroemre

22 Kasım 2019, 17:15:31 #2 Son düzenlenme: 22 Kasım 2019, 17:16:54 Elektroemre
Systick timer'dan direkt milisaniye küsüratı alınabilir.

uint64_t micros()
{
	
uint32_t millismicrosL;

	
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 microsL) * 1000) / SysTick->LOAD;

	
return 
microsVal;
}