完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
亲爱的大家,
我希望使用STM8S tiM3 CH1作为通过脉冲输入测量电机的速度。我每转12个脉冲。如何开始或任何想法开始这个。 #st 以上来自于谷歌翻译 以下为原文 DEAR ALL, I WANT TO USE STM8S TIM3 CH1 AS SPEED MEASUREMENT OF MOTOR VIA PULSE INPUT. I HAVE 12 PULSE PER ROTATION. HOW TO START OR ANY IDEA FOR GETTING STARTED WITH THIS. #st |
|
相关推荐
1个回答
|
|
/ *私人函数原型--------------------------------------------- - * /
/ *私人职能---------------------------------------------- ----------- * / void CLK_Configuration(void); void GPIO_Configuration(void); void EXIT_Configuration(void); void TIM1_Configuration(void); void Delay(u16 Delay_DAT); u32 TIM1ClockFreq = 4000000; u8 TIM1_OVER_FLOW,START_CHECK_TIME; u16 TIME_CAPTURE; u32频率; float SPEED_RPM; void main(void) { CLK_Configuration(); TIM1_Configuration(); GPIO_Configuration(); EXIT_Configuration(); enableInterrupts(); /* 无限循环 */ 而(1) { 如果(TIM1_OVER_FLOW == 0){ FREQUENCY = TIM1ClockFreq /((u32)TIME_CAPTURE * 64); SPEED_RPM =(TIM1ClockFreq * 60)/((u32)TIME_CAPTURE * 64); } 其他{ 频率= 0; SPEED_RPM = 0; } } } void CLK_Configuration(void) { CLK-> CKDIVR = 0x10; //内部4MHz } void GPIO_Configuration(void) { / * GPIOD PD7输入浮动* / GPIOB-> DDR& = 0xfd; GPIOB-> CR1 | = 0x02; //浮动输入 GPIOB-> CR2 | = 0x02; // PB1启用中断 } void EXIT_Configuration(void) { SIM(); // CCR I1和I0 = 1 EXTI-> CR2 = 0x00; // TL中断仅下降沿 EXTI-> CR1 = 0x08; } void TIM1_Configuration(void) { / * -------------------------------- 预分频器+ 1 *自动重载 time = ---------------------- 4MHz的 -------------------------------- * / / *设置自动重载值* / TIM1-> ARRH = 0xff; TIM1-> ARRL = 0xff; TIM1-> CNTRH = 0; TIM1-> CNTRL = 0; / *设置预分频器值* / TIM1-> PSCRH = 0; //预分频器= 1 => 64 TIM1-> PSCRL = 63; / *更新中断启用* / TIM1-> IER | = 0x01; // enableInterrupts(); / * TIM1计数器启用* / TIM1-> CR1 | = 0x01; } void Software_Priority(void) { ITC-> ISPR4& = 0xf3; // TIM2更新/溢出级别2(0 0) ITC-> ISPR4& = 0x7f; // TIM3更新/溢出级别1(0 1) } 无延迟(u16 Delay_DAT) { 静态的u8 i; 静态u16 j; 对于(j = 0; J< Delay_DAT; J ++){ 对于(I = 0; I< 255;我++); } } 以上来自于谷歌翻译 以下为原文 /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ void CLK_Configuration(void); void GPIO_Configuration(void); void EXIT_Configuration(void); void TIM1_Configuration(void); void Delay(u16 Delay_DAT); u32 TIM1ClockFreq = 4000000; u8 TIM1_OVER_FLOW, START_CHECK_TIME; u16 TIME_CAPTURE; u32 FREQUENCY; float SPEED_RPM; void main(void) { CLK_Configuration(); TIM1_Configuration(); GPIO_Configuration(); EXIT_Configuration(); enableInterrupts(); /* Infinite loop */ while (1) { if(TIM1_OVER_FLOW==0){ FREQUENCY = TIM1ClockFreq/((u32)TIME_CAPTURE*64); SPEED_RPM = (TIM1ClockFreq*60)/((u32)TIME_CAPTURE*64); } else { FREQUENCY=0; SPEED_RPM=0; } } } void CLK_Configuration(void) { CLK->CKDIVR = 0x10; // Internal 4MHz } void GPIO_Configuration(void) { /* GPIOD PD7 is input floating */ GPIOB->DDR &=0xfd; GPIOB->CR1 |=0x02; // floating input GPIOB->CR2 |=0x02; // PB1 enable interrupt } void EXIT_Configuration(void) { sim(); // CCR I1 and I0 = 1 EXTI->CR2 = 0x00; //TL interrupt Falling edge only EXTI->CR1 = 0x08; } void TIM1_Configuration(void) { /*-------------------------------- Prescaler+1 * Autoreload time = ---------------------- 4MHz --------------------------------*/ /* Set the Autoreload value */ TIM1->ARRH = 0xff; TIM1->ARRL = 0xff; TIM1->CNTRH = 0; TIM1->CNTRL = 0; /* Set the Prescaler value */ TIM1->PSCRH = 0; // Prescaler = 1 => 64 TIM1->PSCRL = 63; /* Update interrupt enable */ TIM1->IER |= 0x01; //enableInterrupts(); /* TIM1 Counter enable */ TIM1->CR1 |= 0x01; } void Software_Priority(void) { ITC->ISPR4 &= 0xf3; // TIM2 Update/overflow Level 2 (0 0) ITC->ISPR4 &= 0x7f; // TIM3 Update/overflow Level 1 (0 1) } void Delay(u16 Delay_DAT) { static u8 i; static u16 j; for(j=0;j } } |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2801 浏览 1 评论
3258 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1832 浏览 1 评论
3684 浏览 6 评论
6081 浏览 21 评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
384浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
473浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
303浏览 2评论
使用STM32F407VET6的USB2.0功能,发现ctl后芯片无数据返回,是什么原因可能导致的呢?
222浏览 2评论
用STM32G431开发工程,1.50版本的Package包文件无法输出项目工程
328浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 13:13 , Processed in 1.240829 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号