共1条 1/1
1
跳转至
页
[求助]uc/OS定时器中断程序?
这是zxgllp提的一个问题, 希望各位帮帮忙! ------------------------------------------------------------- 以下是别人移植的程序一部分定时器中断程序: CSEG AT 0BH LJMP _?OSTickISR PUBLIC OSTickRate DT?OSTickISR SEGMENT DATA RSEG DT?OSTickISR OSTickRate: DS 1 OSTickCntr: DS 1 EXTRN CODE(_?UserTickTimer) PR?OSTickISR SEGMENT CODE RSEG PR?OSTickISR _?OSTickISR: LCALL ResetIntrHw PUSHA LCALL _?UserTickTimer DEC OSTickCntr MOV A, OSTickCntr JNZ OSTI_1 MOV OSTickCntr, OSTickRate LCALL _?OSIntEnter LCALL _?OSTimeTick LCALL _?OSIntExit OSTI_1: POPA RET ResetIntrHw: RETI 以上运行是正确的,可是我觉得这个中断程序应该是以RETI结尾,可是它是以RET结尾。根据我的理解我改成了以下形式: CSEG AT 0BH LJMP _?OSTickISR PUBLIC OSTickRate DT?OSTickISR SEGMENT DATA RSEG DT?OSTickISR OSTickRate: DS 1 OSTickCntr: DS 1 EXTRN CODE(_?UserTickTimer) PR?OSTickISR SEGMENT CODE RSEG PR?OSTickISR _?OSTickISR: PUSHA DEC OSTickCntr MOV A, OSTickCntr JNZ OSTI_1 MOV OSTickCntr, OSTickRate LCALL _?OSIntEnter LCALL _?OSTimeTick LCALL _?OSIntExit OSTI_1: POPA RETI 可是改成这样以后,程序反而不能运行啦,我不知道是为什么?这里面和堆栈也没有多大关系啊? PUSHA和POPA是中断程序自身的,对吧? 请多多指教! [align=right][color=#000066][此贴子已经被amine于2002-5-28 8:58:03编辑过][/color][/align]
关键词: 求助 定时器 中断 程序 OSTickISR
共1条 1/1
1
跳转至
页
回复
有奖活动 | |
---|---|
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! | |
“我想要一部加热台”活动,不花钱赢取开发好工具!活动开始了哦 | |
【有奖活动】伙伴们:您的“需求”解决了吗? | |
抽奖了,抽奖了,金升阳医疗电源 |
打赏帖 | |
---|---|
放大↔震荡被打赏50分 | |
【分享评测,赢取加热台】+Telink-泰凌微电子B91点灯篇被打赏20分 | |
【换取手持数字示波器】+DFR0216全彩灯带WS2812示例分享被打赏50分 | |
【换取手持数字示波器】安装雅特力国产IDE-AT32IDE被打赏30分 | |
【换取手持数字示波器】+DFR0654板卡驱动数码管和串口功能分享被打赏50分 | |
【换取手持数字示波器】+DFPlayerMini模块推喇叭示例分享被打赏50分 | |
【换取手持数字示波器】+DFR0868模块开发准备工作分享被打赏30分 | |
【换取手持数字示波器】HMI开发板首秀RTduino被打赏30分 | |
电解电容引发的问题被打赏50分 | |
【换取手持数字示波器】+AT-START-F405之串口通讯被打赏40分 |