|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问,我现在做 2114 的产品开发.出现以下问题,特向您请教!
7 D7 `- f, Y2 S# Q! Q- \
4 n: ^* N9 C9 _9 N: f8 F- S问题: ' J; z1 A- W2 q! y
我们开发的产品要采样,采用周期固定.于是我们采用 timer0 进行时钟触发,利用触发中断程序 每隔 10 毫秒采样一次并显示波形.这都能很好的进行.但是在中断程序里面对几个全局变量赋值, 跳出中断后却不能使用该全局变量.很是头疼!请赐教!!
- |; @; l! j; x& v1 i# h: ]0 f8 p# g. `$ O% ]3 F- ?" g
框架如下:
( |! g* e# m7 ]& b- juint8 a; //全局变量
( Q" `* J, r7 A% j- F4 ovoid __irq funtimer0()
4 A$ o( q+ I% ~" W; v; q h0 C{ / T1 Z K H, d7 a
...
: @0 @; @8 @; @7 ka=0; //在中断函数里面对全局变量赋值 : Z3 t3 R% V' Z: G* c* x
... / G4 z7 K8 N1 U# n; t
} 9 R* v/ P3 b( c# c
void fun1() - q( F. K) U/ `& @' @* I) u
{ 7 b2 A. g' [+ j* l' t2 T
uint8 i;
3 x) m% H/ _# _8 S" ii=0; - m8 \( m* m& d2 i
....... % V: ]! E$ U9 \7 z5 x& e/ _% Y( ]
i=a; // 出错位置,在调试过程中运行到当前位置,鼠标移动到变量 a 上 5 d7 t4 f8 H. p1 ~
// 显示数值是 0,但是不能传给 i,i 的值不会随该命令改变.
$ [5 s7 G& `/ N...... }
1 u" |6 ~ I* M/ p( r: d! f因此,我在中断函数中采集到的数据放到全局数组中.采集完成关中断后在用户模式下的程序中来处理该数组,但是该数组中的数据也不能使用!全局数组变量占 1000 个字节,IRQ 堆栈长度是 256. 5 Q* M, [" S: R$ x
3 W* C2 M) j* y
|
|