关于Keil C 中全局变量的值出错的问题

本文介绍了在使用Keil C编程时遇到的一个问题,即全局变量在中断服务程序中出现异常。作者通过分析发现,全局变量可能与中断用的寄存器组产生冲突。为解决这个问题,提出了多个注意事项,如减少全局变量的使用,避免在中断中直接操作全局变量,使用函数封装共享变量,以及使用volatile关键字等。这为理解Keil C的全局变量和中断处理提供了参考。
摘要由CSDN通过智能技术生成

关于Keil C 中全局变量的值出错的问题

在一次偶然的实验中,我发现全局变量使用时,值会出现异常,准确的说应该是:当在中断中使用全局变量的时候,值会出错。当时我用的是C52,我想比较一下T0T2做精确时钟能不能实现,误差有多少。

于是,我写了一个定时器模块,包括一个Timer.c文件和一个Timer.h文件,里面分别写了T0T2的初始化函数和中断函数如下:

void Timer2_Init(void);             //T2初始化函数

void Timer2(void);                    //T2中断函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值