Yang.Lian 发表于 2024-5-17 14:37:35

本帖最后由 Yang.Lian 于 2024-5-17 16:17 编辑

在 STC32G12K128 上 使用 COSYII 2.2.1 时候 4/5 中断都可以正常中断
但是 DMA_ADC_VECTOR (48)中断,却中断不了。
用 DMA_ADC_STA |= 0x01,又可以正常进入对应的中断。


如果不使用 COSYII 操作系统,直接 main 里用同样的代码初始化又可以正常中断。

好奇怪,求解

进一步测试发现,这个跟时钟的配置有关系

如果 SYSCFG_SYSCLK 配置成 11059200
且SYSCFG_SYSTICKCYCLE 配置成 1250 就会导致 DMA_ADC_VECTOR (48)中断 进不去

如果 SYSCFG_SYSCLK 配置成 12000000
且SYSCFG_SYSTICKCYCLE 配置成 1000 就没有这个问题 DMA_ADC_VECTOR (48)中断 可以正常进


我晕了个大了,我之前问过 11059200 和 1250 的时钟配置有没有隐患,楼主回复说没有,我就没有往这个事情上想,没想到还真有问题

不知道这算不算一个bug,还是说我不应该用 11059200/1250 的搭配?


CosyOS 发表于 2024-5-17 16:20:51

Yang.Lian 发表于 2024-5-17 14:37
在 STC32G12K128 上 使用 COSYII 2.2.1 时候 4/5 中断都可以正常中断
但是 DMA_ADC_VECTOR (48)中断,却 ...

你下载最新的 CosyOS-II-STC32G-工程模板 试一下,在顶楼有提供下载。

Yang.Lian 发表于 2024-5-17 16:56:03

本帖最后由 Yang.Lian 于 2024-5-17 17:00 编辑

CosyOS 发表于 2024-5-17 16:20
你下载最新的 CosyOS-II-STC32G-工程模板 试一下,在顶楼有提供下载。
非常乐意效劳

两个版本都测试了,表现是一模一样

本来想看看是什么原因,看了一下调度的代码,劝退了,楼主上,我下,我可以帮忙测试

我建了两个分支,新旧版本都有

CosyOS 发表于 2024-5-17 18:09:15

Yang.Lian 发表于 2024-5-17 14:37
在 STC32G12K128 上 使用 COSYII 2.2.1 时候 4/5 中断都可以正常中断
但是 DMA_ADC_VECTOR (48)中断,却 ...

从理论上来说,除了误差之外,我确实没想到会有什么隐患。
CosyOS 的 系统滴答周期 和 任务调度 等,怎么会影响到 DMA 中断?
这个问题我也不理解,想不到是什么原因。

Yang.Lian 发表于 2024-5-17 18:16:17

本帖最后由 Yang.Lian 于 2024-5-17 18:21 编辑

CosyOS 发表于 2024-5-17 18:09
从理论上来说,除了误差之外,我确实没想到会有什么隐患。
CosyOS 的 系统滴答周期 和 任务调度 等,怎么 ...
真的好奇怪啊

我现在收回我说的,即便我用12000000/1000 还是有问题

上一个帖子的时候,我只在 12000000/1000 和 11059200/1000 之间改动,确实可以表现出 ADC DMA 中断能进和不能进的问题


现在我把DEBUG调试输出到 UART1,也确实可以在串口看到 CosyOS-II 任务管理器(彩蛋新版本是中文,旧版本是英文)


此时 ADC DMA又进不了

CosyOS 发表于 2024-5-17 18:18:02

Yang.Lian 发表于 2024-5-17 16:56
非常乐意效劳

两个版本都测试了,表现是一模一样


我看你可以配置为 11059200 和 1000 ,延时误差很小的,
测试一下,DMA中断会不会正常。

CosyOS 发表于 2024-5-17 18:20:53

本帖最后由 CosyOS 于 2024-5-17 18:22 编辑

Yang.Lian 发表于 2024-5-17 18:16
真的好奇怪啊

我现在收回我说的,即便我用12000000/1000 还是有问题
我建议你把相关代码发给我,我来查找原因。
或者你把相关的地方,都好好查一遍。

CosyOS 发表于 2024-5-17 18:27:16

Yang.Lian 发表于 2024-5-17 16:56
非常乐意效劳

两个版本都测试了,表现是一模一样


屏蔽警告:



删除 285~290 行即可。

Yang.Lian 发表于 2024-5-17 18:32:17

上代码

CosyOS 发表于 2024-5-17 18:34:16

Yang.Lian 发表于 2024-5-17 18:16
真的好奇怪啊

我现在收回我说的,即便我用12000000/1000 还是有问题


测试程序中,
STC32G_UART_Isr.c ,对 UART2中断 进行了条件编译;
STC32G_Exit_Isr.c ,屏蔽了 INT0中断;
STC32G_Timer_Isr.c ,屏蔽了 TM1 和 TM3 中断。
其它中断,原封未动。
页: 54 55 56 57 58 59 60 61 62 63 [64] 65 66 67 68 69 70 71 72 73
查看完整版本: 全局不关总中断的 RTOS,CosyOS-III-V1.2.0, 送 擎天柱-AI8051U转89C52核心板