سلام.
یه سوال کوتاه دارم که هرچی سرچ کردم نتونستم چیزی پیدا کنم.
بیشتر محاسبات و اینجور چیزا راجب تایمرا توی میکروی stm8s003f3 یاد گرفتم. ولی هرچی دنبال یه تابع اینتراپت overflow یا همون سرریز تایمر میگردم هیچی پیدا نمیکنم.
فقط هم دنبال یه نمونه کد هستم.
مثلا برای نمونه کد زیر که از تایمر 2 استفاده میکنه، چجوری اینو تبدیل به اینتراپت overflow کنم؟
و یه سوال دیگه که این تابع سرعتش از 1 میکرو ثانیه بیشتره؟ اگر کلاک 2 مگاهرتز باشه؟
یه سوال کوتاه دارم که هرچی سرچ کردم نتونستم چیزی پیدا کنم.
بیشتر محاسبات و اینجور چیزا راجب تایمرا توی میکروی stm8s003f3 یاد گرفتم. ولی هرچی دنبال یه تابع اینتراپت overflow یا همون سرریز تایمر میگردم هیچی پیدا نمیکنم.
فقط هم دنبال یه نمونه کد هستم.
مثلا برای نمونه کد زیر که از تایمر 2 استفاده میکنه، چجوری اینو تبدیل به اینتراپت overflow کنم؟
و یه سوال دیگه که این تابع سرعتش از 1 میکرو ثانیه بیشتره؟ اگر کلاک 2 مگاهرتز باشه؟
کد:
#include "STM8S.h" void clock_setup(void); void GPIO_setup(void); void TIM2_setup(void); void main(void) { clock_setup(); GPIO_setup(); TIM2_setup(); while(TRUE) { }; } void clock_setup(void) { CLK_DeInit(); CLK_HSECmd(DISABLE); CLK_LSICmd(DISABLE); CLK_HSICmd(ENABLE); while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY) == FALSE); CLK_ClockSwitchCmd(ENABLE); CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8); CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSI, DISABLE, CLK_CURRENTCLOCKSTATE_ENABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI, DISABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_I2C, DISABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_ADC, DISABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU, DISABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1, DISABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, DISABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2, ENABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, DISABLE); } void GPIO_setup(void) { GPIO_DeInit(GPIOD); GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST); } void TIM2_setup(void) { TIM2_DeInit(); TIM2_TimeBaseInit(TIM2_PRESCALER_2048, 1952); TIM2_Cmd(ENABLE); }