|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问,我现在做 2114 的产品开发.出现以下问题,特向您请教!
0 p0 v! Q# s( I7 \, s8 {. F; p
9 s5 {0 t) O+ s问题:
6 a; { \( n* m* o我们开发的产品要采样,采用周期固定.于是我们采用 timer0 进行时钟触发,利用触发中断程序 每隔 10 毫秒采样一次并显示波形.这都能很好的进行.但是在中断程序里面对几个全局变量赋值, 跳出中断后却不能使用该全局变量.很是头疼!请赐教!!
) T( z; y- G) u3 N, Z& e3 L
5 O3 T2 w& V) N( z) Y+ O/ ]* F) Z框架如下:
% @1 ~. v& ?3 x. O2 puint8 a; //全局变量
! {5 t7 }3 W% {9 }void __irq funtimer0()
, l6 Q# a( L, v! w. }0 K{
n5 B) |2 i0 d9 [; u1 \...
! ^1 c Q; w) |* ga=0; //在中断函数里面对全局变量赋值
5 x$ _* L) ?( J% w) |, p... ) i+ G6 g' D! r! z8 f
}
# {& y6 r4 t. H6 P0 Ovoid fun1()
+ J) [1 L0 m- z6 R{ $ X+ _. [' X% g) ?
uint8 i; 3 M% `9 `. p& P
i=0;
; C5 l% j7 H7 {3 W! |; O.......
# }! g1 L4 Y% {+ [i=a; // 出错位置,在调试过程中运行到当前位置,鼠标移动到变量 a 上 7 ]) e$ h( r# I8 p9 ` t2 F
// 显示数值是 0,但是不能传给 i,i 的值不会随该命令改变.
% ?3 j- c$ j4 D7 B...... } 2 w( O% \0 m! ~. Q2 @- Q
因此,我在中断函数中采集到的数据放到全局数组中.采集完成关中断后在用户模式下的程序中来处理该数组,但是该数组中的数据也不能使用!全局数组变量占 1000 个字节,IRQ 堆栈长度是 256. 2 P& q! @8 _: {
4 T- \( u- `- Y8 l% U |
|