|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问,我现在做 2114 的产品开发.出现以下问题,特向您请教! 7 J! s( N2 s' L
2 p8 y: v8 C: Q" \, j/ \7 }! y
问题:
0 s3 m. v0 ?% b我们开发的产品要采样,采用周期固定.于是我们采用 timer0 进行时钟触发,利用触发中断程序 每隔 10 毫秒采样一次并显示波形.这都能很好的进行.但是在中断程序里面对几个全局变量赋值, 跳出中断后却不能使用该全局变量.很是头疼!请赐教!! + c- ~" i" d; j3 J/ f
+ L; f, c) ^. ]4 \1 v" s框架如下:
1 O$ f6 J7 ^2 v" t9 X2 Duint8 a; //全局变量 $ B# }$ I/ a$ R: C; x1 d9 Y
void __irq funtimer0() ; K+ d/ y! P D6 r# `. J9 i
{ / I4 R( ], ]8 _# x) `+ y
... 8 {; e" m2 ^# ]! P: Z
a=0; //在中断函数里面对全局变量赋值
$ A! G9 s1 Q' X2 d2 o) g1 l1 R6 p& u... * b- c6 N! |- E* r4 v+ ?
} # ~& I8 g8 |6 J5 Y7 \
void fun1() : [6 {: Z+ i3 ?# V
{
) ^6 L# j0 w9 k' Kuint8 i; 0 K/ h/ H b1 W, Q) `
i=0; * W$ C7 W# K+ D% n; H: M9 ]. G
.......
% L) t8 S1 V1 B5 F: w2 }. Oi=a; // 出错位置,在调试过程中运行到当前位置,鼠标移动到变量 a 上
& @8 h0 _8 y6 D) Q, o+ {: K// 显示数值是 0,但是不能传给 i,i 的值不会随该命令改变. . d# h0 I, Q5 b4 `) |9 o
...... } 5 T5 Y8 V) y# F( A/ G h
因此,我在中断函数中采集到的数据放到全局数组中.采集完成关中断后在用户模式下的程序中来处理该数组,但是该数组中的数据也不能使用!全局数组变量占 1000 个字节,IRQ 堆栈长度是 256. 4 {5 Q" u% q- m1 V G6 H- V& ~
6 s% R( e3 Y; |0 z% | |
|