导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[ST6168]急!哪位高手指点16F73使用时如何有效



No.55137
作者:ST6168
邮件:ST6168@163.COM
ID:21517
登陆:1次
文章数:3篇
最后登陆IP:210.21.209.251
最后登陆:2004/5/28 18:00:55
注册:2004/5/22 16:34:33
财富:109
发帖时间:2004/5/22 16:35:43
发贴者IP:210.21.209.3
标题:ST6168:急!哪位高手指点16F73使用时如何有效防止中断发生造成堆栈溢出问题
摘要:No.55137急!哪位高手指点16F73使用时如何有效防止中断发生造成堆栈溢出问题 急!哪位高手指点16F73使用时如何有效防止中断发生造成堆栈溢出问题

写一个16F73做的测试仪器产品程序
用了9个中断:
; INT外部秒脉冲中断
; TMR0外部脉冲计数器溢出中断
; PORTB(D7---D4)电平变化
; A/D转换完成;电压测量
; TMR1内部定时器溢出即500MS定时/显示/Buz)
; TMR2匹配
; SCI异步发送
; SCI异步接收

初始化完成后,以上9个中断全部开放(使能)
主程序在循环时,经常由于在某个CALL  调用子程序时发生中断,造成堆栈溢出
而且溢出的堆栈内容有时怪怪的
如:
00AD
00CE
012A      ;中断发生
0079      ;中断发生    0079 ????前一中断处理刚RETFIE出又进其它中断了?
0079      ;中断发生    0079 ????前一中断处理刚RETFIE出又进其它中断了?
0079      ;中断发生    怎么压栈地址还是0079 ????前一中断处理刚RETFIE出又进中断了?
0079      ;中断发生    是否是CALL 瞬间发生 ???
0079      ;压栈地址对应于 CALL   SendLCDdata  下句PC地址 ----  正常主程序CALL

我的程序涉及到以下事情:

6种开关量跳变检测、计数、处理;模拟量电压A/D;
定时显示LCD(LCDDr ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:78531毫秒 查询6次