|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问,我现在做 2114 的产品开发.出现以下问题,特向您请教!
2 h4 @ i9 z3 g/ `' n, I; |
. O7 P: i! t$ w7 f/ Y4 M4 F: v问题: ! `! i4 g, B. M, f" S
我们开发的产品要采样,采用周期固定.于是我们采用 timer0 进行时钟触发,利用触发中断程序 每隔 10 毫秒采样一次并显示波形.这都能很好的进行.但是在中断程序里面对几个全局变量赋值, 跳出中断后却不能使用该全局变量.很是头疼!请赐教!! ) _8 Y* {. o/ ?( Q1 T
- \; `7 N6 h# y2 `+ j: K框架如下:
7 l- ?7 V" {5 F- k. Ruint8 a; //全局变量
3 `7 f) y9 [" F1 X* h3 X7 |void __irq funtimer0()
. F- M# I% g) ~1 q+ W9 r* @* @{
4 }4 U) x" {' `5 a) A" s4 V...
2 w2 r; W2 W2 d; l* d5 m! R' Za=0; //在中断函数里面对全局变量赋值
8 E$ `# x" X& f$ k r...
1 e# q/ r1 B' u}
2 E7 o2 a( V) @1 f- X% Xvoid fun1()
7 j& g( F, S8 O& t* ? \# v$ ?{ 2 N; h o, C9 ~9 h4 r
uint8 i; 5 x) j+ L0 N" T
i=0;
/ i! |5 E D U....... 9 T D. z4 Z" z$ o6 c. m4 v
i=a; // 出错位置,在调试过程中运行到当前位置,鼠标移动到变量 a 上 - g9 C: F9 I/ j% w9 O0 `/ Z
// 显示数值是 0,但是不能传给 i,i 的值不会随该命令改变.
9 @8 {$ \& @9 q5 f! F...... } 9 R! W( B$ V& P/ u
因此,我在中断函数中采集到的数据放到全局数组中.采集完成关中断后在用户模式下的程序中来处理该数组,但是该数组中的数据也不能使用!全局数组变量占 1000 个字节,IRQ 堆栈长度是 256. T( b9 }) l6 V
6 u+ R! ^: s. r' Z5 s5 T |
|