完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ESP32-WROOM-32UE
comit: af8bc4c /** * @brief this is ISR handler function */ static void IRAM_ATTR isr_handler() { uint32_t mcpwm_intr_status; mcpwm_intr_status = MCPWM[MCPWM_UNIT_0]->int_st.val; //Read interrupt status tmp = mcpwm_intr_status; MCPWM[MCPWM_UNIT_0]->int_clr.val = mcpwm_intr_status; } mcpwm_config_t pwm_config; pwm_config.frequency = 5000; //frequency = 1000Hz, i.e. for every servo motor time period should be 1ms pwm_config.cmpr_a = 50; //duty cycle of PWMxA = 0 pwm_config.cmpr_b = 50; //duty cycle of PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; pwm_config.duty_mode = MCPWM_DUTY_MODE_0; mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_0, &pwm_config); //Configure PWM0A & PWM0B with above settings MCPWM[MCPWM_UNIT_0]->int_ena.timer0_tez_int_ena = 1; MCPWM[MCPWM_UNIT_0]->int_ena.timer0_tep_int_ena = 1; mcpwm_isr_register(MCPWM_UNIT_0, isr_handler, NULL, ESP_INTR_FLAG_IRAM, NULL); //Set ISR Handler printf("TMR0TEZ intr status %d n", tmp); mcpwm_intr_status值一直为零,没有产生tez或tep中断。 |
|
相关推荐
1个回答
|
|
从您提供的代码片段来看,您正在尝试使用ESP32的MCPWM模块来处理中断。但是,您遇到了一个问题,即`mcpwm_intr_status`值一直为零,没有产生TEZ或TEP中断。这里有几个可能的原因:
1. **中断配置不正确**:确保您已经正确配置了MCPWM的中断。这包括设置正确的中断类型(如TEZ或TEP),并启用了中断。 2. **中断使能未设置**:在配置MCPWM中断之前,需要确保中断使能位已经被设置。例如,使用`MCPWM.int_ena.val`来启用所需的中断。 3. **中断清除逻辑问题**:在您的代码中,您在读取中断状态后立即清除了中断。这可能导致中断状态在读取后立即被清除,从而无法在中断服务例程中检测到。您可以尝试在处理完中断后清除中断状态。 4. **中断优先级设置问题**:ESP32的中断系统允许设置不同的优先级。如果您的MCPWM中断优先级设置得太低,可能会被其他更高优先级的中断抢占。确保MCPWM中断的优先级设置正确。 5. **硬件问题**:虽然不太可能,但也不能排除硬件问题。确保您的硬件连接正确,MCPWM模块没有损坏。 6. **代码逻辑问题**:检查您的代码逻辑,确保在调用中断服务例程之前,MCPWM模块已经正确初始化并配置。 7. **固件/软件版本问题**:有时候,固件或软件库的特定版本可能存在bug。尝试更新ESP32的固件或使用的软件库到最新版本。 8. **调试和日志**:增加更多的调试信息和日志输出,以便更好地了解中断服务例程何时被调用,以及中断状态的具体值。 为了解决这个问题,您可以尝试以下步骤: - 确保MCPWM模块已经正确初始化。 - 检查并确保中断使能位已经被设置。 - 调整中断服务例程中的逻辑,确保在处理中断后清除中断状态。 - 检查中断优先级设置。 - 使用调试工具和日志输出来跟踪中断状态和中断服务例程的调用情况。 如果问题仍然存在,您可能需要更详细地检查您的代码和硬件设置,或者寻求社区的帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
1149 浏览 1 评论
582浏览 6评论
480浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
465浏览 5评论
466浏览 4评论
441浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 04:33 , Processed in 0.674519 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号