|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问,我现在做 2114 的产品开发.出现以下问题,特向您请教!
6 |" K7 s b A2 G/ @7 i3 A$ R, H( y0 n }' o) U
问题:
( \0 R, B& ]. W0 v& M: L9 X& f我们开发的产品要采样,采用周期固定.于是我们采用 timer0 进行时钟触发,利用触发中断程序 每隔 10 毫秒采样一次并显示波形.这都能很好的进行.但是在中断程序里面对几个全局变量赋值, 跳出中断后却不能使用该全局变量.很是头疼!请赐教!! * q' |( Z* t" c% G
" y9 n% L2 Q9 p2 x" p# G) w6 {框架如下: ) v& K z" e4 v* q
uint8 a; //全局变量 * J; F9 N! K. ~' I9 z
void __irq funtimer0()
" h d5 f0 L0 c" w+ i* R2 F5 K' _{ 5 C" P# B* x1 S$ P) o
... R# B. D: w$ d& ~
a=0; //在中断函数里面对全局变量赋值
. c; q0 [4 I' `$ a+ S. B...
8 f/ \, [2 i5 Z) N5 N _- [% V5 C}
& |: Y6 z# O) x5 N/ _, b$ Uvoid fun1() " |2 T3 c/ _; B% v
{ # c* V$ L- j3 ~8 t
uint8 i; 4 o I- W5 _+ f I' q3 i J: M
i=0; 4 ^9 O" [2 _% S! V) P
.......
^) {- R5 A4 w, }5 \0 n8 L& p; Wi=a; // 出错位置,在调试过程中运行到当前位置,鼠标移动到变量 a 上
4 ?. F) v5 F. o! b7 N5 _, Q// 显示数值是 0,但是不能传给 i,i 的值不会随该命令改变. # f$ p' c" T1 b" r$ W/ N: P1 L4 r
...... } ' {" v/ J( a3 l! M T5 h
因此,我在中断函数中采集到的数据放到全局数组中.采集完成关中断后在用户模式下的程序中来处理该数组,但是该数组中的数据也不能使用!全局数组变量占 1000 个字节,IRQ 堆栈长度是 256.
% o9 [& o. e D4 [% s5 @2 W3 {5 E/ w- `; A
|
|