共2条
1/1 1 跳转至页
2214,10ms 2214定时器中断时间不能低于10ms?

问
OS_ENTER_CRITICAL(); // 关闭中断
VICVectAddr1 = (uint32)Timer1_Exception; // 定时器函数
VICVectCntl1 = (0x20 | 0x05); // 定时器1中断通道分配到第1通道
VICIntEnable = 0x00000020 | VICIntEnable; // 使能定时器1中断
T1IR = 0xffffffff; // 定时器1清除所有中断标志
T1TC = 0; // 定时器1计数器TC起始计数为0
T1TCR = 0x01; // 定时器1保持在计数状态
T1MCR = 0x03; // 定时器1匹配控制寄存器
T1MR0 = (Fpclk / 1000); // 比较值(100ms值)
OS_EXIT_CRITICAL(); // 开中断
如果中断时间在1-100,是可以的,到1000后老是重启,我是做语音采集的,要10K中断速度,怎么办?? 答 1: 有没有人做过定时器1ms中断吗?我是用操作系统的,定时器每秒达到500次就不正常了,老是重启动 答 2: 0.1 答 3: 0.1ms也做过,内核每秒切换5000次也试过 答 4: 我也关心这个问题我也有这种需要,我不用操作系统做。
我要求100k,我觉得不会有问题。
当然是了才知道 答 5: 感觉好像是操作系统没有移植好。中断有没有嵌套? 答 6: 操作系统是用老周的,不会说老周的系统用问题吧?我精简到最简 答 7: 问题解决没有??local_mach兄弟,你这个UC/OS下time1的问题解决没有啊,我也准备做这个,试了一下,time1中断好像有问题啊 答 8: 我是用2114的,太短是不行的,100us我试过! 答 9: 我做的最小能达到30us再小就不行了
VICVectAddr1 = (uint32)Timer1_Exception; // 定时器函数
VICVectCntl1 = (0x20 | 0x05); // 定时器1中断通道分配到第1通道
VICIntEnable = 0x00000020 | VICIntEnable; // 使能定时器1中断
T1IR = 0xffffffff; // 定时器1清除所有中断标志
T1TC = 0; // 定时器1计数器TC起始计数为0
T1TCR = 0x01; // 定时器1保持在计数状态
T1MCR = 0x03; // 定时器1匹配控制寄存器
T1MR0 = (Fpclk / 1000); // 比较值(100ms值)
OS_EXIT_CRITICAL(); // 开中断
如果中断时间在1-100,是可以的,到1000后老是重启,我是做语音采集的,要10K中断速度,怎么办?? 答 1: 有没有人做过定时器1ms中断吗?我是用操作系统的,定时器每秒达到500次就不正常了,老是重启动 答 2: 0.1 答 3: 0.1ms也做过,内核每秒切换5000次也试过 答 4: 我也关心这个问题我也有这种需要,我不用操作系统做。
我要求100k,我觉得不会有问题。
当然是了才知道 答 5: 感觉好像是操作系统没有移植好。中断有没有嵌套? 答 6: 操作系统是用老周的,不会说老周的系统用问题吧?我精简到最简 答 7: 问题解决没有??local_mach兄弟,你这个UC/OS下time1的问题解决没有啊,我也准备做这个,试了一下,time1中断好像有问题啊 答 8: 我是用2114的,太短是不行的,100us我试过! 答 9: 我做的最小能达到30us再小就不行了
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
C语言函数宏的三种封装方式被打赏50分 | |
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769LVGL优化显示被打赏26分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769驱动ST7789以及显示优化被打赏36分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 PAL模拟I2C驱动适配被打赏23分 | |
我想要一部加热台+电源硬件设计规范被打赏16分 | |
我想要一部加热台+LED背光驱动芯片RT9293知识被打赏18分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 ADC 模块配置使用被打赏24分 |