是堆栈溢出了,使得USP和ISP的数据重合,变量被随意改变.即使把堆栈改大,不能彻底解决,程序还得再改.哪位有更好的建议解决这个问题.……
为什么在中断处理程序里面修改KEY输入终端引脚的值?
由于使用4*4的按键,需要扫描确定是哪一个键被按下.所以要切换端口10的输入输出方向.如果使用4个按键就不用了.
上午实验……
程序不方便上传,我大概描述一下吧.按键中断服务程序在论坛曾经发过,如下:
#include <sfr62p.h>
void ki_init (void);
#……
最近,在用按键中断,经常会出现程序停到反汇编的"BRK"或"UND"处,无法运行.
"BRK"或"UND&q……
最近使用M16C/62P对外部ROM进行4M存储空间扩展,正好用到地址和数据总线复用,是用16数据总线宽度,在设置寄存器时有些晕,主要设置下面的寄存器:PM0,PM1,CSR,CS……
是软件去抖,在中断程序加了清除IR,已OK,
因为这个程序是在4个按键的基础上更改的,做4个按键时没加清除IR标志的指令,运行是正常的(无论是仿真或下载后).……
设置按键中断,在中断程序中设置了一个断点,在E8仿真时,按一次键后,进入中断服务程序,并运行到所设的断点处,再全速运行,这时程序又进入了中断服务程序,又到了该断点处(这次是没有按键……
原来是E8的问题,我将RAM起始地址改了,已解决.谢谢Drive78.……
如何将数组声明为全局变量?
在函数体外声明了全局变量unsigned char buffer[512],软件仿真时是没问题的,连接E8仿真调试时,查看buffer的内容,发现bu……
1.那就是直接对端口的地址操作吗?例如用的是P0和P1连接,不用P0,P1端口寄存器,而是对03E0H(对应P0)地址送16位的数据?有没有这方面的参考例子?
2.是板子的问题.……