|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问,我现在做 2114 的产品开发.出现以下问题,特向您请教! / g& ] L0 o6 M0 m9 j. k
9 |* w+ \* g! U Y' N9 \' O5 U4 O; h问题: / X5 G! t |3 F& r
我们开发的产品要采样,采用周期固定.于是我们采用 timer0 进行时钟触发,利用触发中断程序 每隔 10 毫秒采样一次并显示波形.这都能很好的进行.但是在中断程序里面对几个全局变量赋值, 跳出中断后却不能使用该全局变量.很是头疼!请赐教!!
7 Z+ B+ J$ N }) A& h
8 v) h+ r% w$ ^5 Y; ^, k' K框架如下: ' I+ I8 u% e0 b4 x; `) K, f
uint8 a; //全局变量
' g0 O) ~6 r8 l+ i. o2 d P3 v6 }void __irq funtimer0()
: k( L6 a5 C$ f2 `; p" g{
0 e/ \+ o4 W% O+ i4 V...
G9 C$ A N5 Ta=0; //在中断函数里面对全局变量赋值
5 E1 B4 E) c; r A+ y1 ^ D, @8 H... f. p" |- H/ t, {. b7 P
}
- I' \9 k# p- Cvoid fun1()
, _5 R) s3 v! C; o* O{
% ~' M9 q% d- o( I H- I, |7 Muint8 i; - |; V1 u3 t3 O
i=0; * Q8 x1 L5 z4 _9 ?: y& k# {
.......
* {( R) D5 J9 {6 e! xi=a; // 出错位置,在调试过程中运行到当前位置,鼠标移动到变量 a 上
4 a. m* v: O2 l( D9 ?4 V, U// 显示数值是 0,但是不能传给 i,i 的值不会随该命令改变. ; V8 y S' A; h& l( ?
...... }
: v7 q5 o8 n! {2 T因此,我在中断函数中采集到的数据放到全局数组中.采集完成关中断后在用户模式下的程序中来处理该数组,但是该数组中的数据也不能使用!全局数组变量占 1000 个字节,IRQ 堆栈长度是 256. 9 R# ]% R8 b) A0 g8 c9 s: Y
# {% i [% o# y! T8 o |
|