سلام دوستان.
یه مشکلی برامپیش اومده که دیگه میخام
من تایمر رو برای میکروی stm32f103 روشن می کنم و مثلا بعد از 10 میکروثانیه مقدار کانتر رو می خوانم. اگرچه تایمر رو با فرکانس 1MHz راه انداختم امامتاسفانه بعد از 10 میکروثانیه (تابع تاخیر رو با اسکوپ چک کردم مشکلی نبود) مقدار CNT رو که می خونم عدد چرت و پرت نشوم میده.
فرکانس میکرو 72 مگ هستش. البته اینم بگم وقتی تایمر رو وقفه فعال می کنم بعد از زمان موردنظر بهم وقفه میده اما حالت عادی انگار تایمر درست شمارش نمی کنه !!!
به نظرتون ایراد کجاست؟
یه مشکلی برامپیش اومده که دیگه میخام
من تایمر رو برای میکروی stm32f103 روشن می کنم و مثلا بعد از 10 میکروثانیه مقدار کانتر رو می خوانم. اگرچه تایمر رو با فرکانس 1MHz راه انداختم امامتاسفانه بعد از 10 میکروثانیه (تابع تاخیر رو با اسکوپ چک کردم مشکلی نبود) مقدار CNT رو که می خونم عدد چرت و پرت نشوم میده.
کد:
[FONT=Yekan]RCC->APB1ENR |= RCC_APB1ENR_TIM6EN; [/FONT]TIM6->CR1 = 0; TIM6->CR2 = 0; TIM6->CNT = 0; TIM6->PSC = ( 72 - 1); TIM6->RCR = 0; TIM6->ARR = 0xFFFF; TIM6->CR1 = TIM_CR1_CEN; delay_us(10); i=TIM6->CNT; TIM6->CR1 =0; sprintf(str, "cnt = %d \n", i); [FONT=Yekan]printf(str);[/FONT]
به نظرتون ایراد کجاست؟
دیدگاه