打印
[PIC®/AVR®/dsPIC®产品]

中断函数对不对?

[复制链接]
860|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
renyaq|  楼主 | 2022-3-2 23:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pzsh 于 2022-4-20 10:21 编辑

这个定时器的设置对不对,0.140MS溢出中断,中断函数对不对?

#include <mega8.h>;                //包含单片机内部资源预定义  
#include <delay.h>;

// 宏定义---
typedef  unsigned int  uint;
typedef  unsigned char uchar;

#define NOP()  #asm("nop")  
void MCU_init (void);  // 涵数声明---     
uchar irtime;  // 全局变量---           

void main (void)
{         
        MCU_init();                                                // 初始化MCU                 
        #asm("sei")      
   
        while (1)              
     {      
            if(irtime==100)
                {
                  TCCR0=0X00;
                  irtime=0;     
                           
                }            
    }
}
// ------------------------------------------------- //

void MCU_init (void)    //单片机初始化
{        
   // External Interrupt(s) initialization
    // INT0: On
    // INT0 Mode: Falling Edge
    // INT1: On
    // INT1 Mode: Low level
    GICR|=0xC0;
    MCUCR=0x02;
    GIFR=0xC0;
    GIFR|=(1<<INTF0);  
   
    TCCR0=0X02;  //WGM01=0、WGM00=0,普通模式;COM01=0、COM00=0,PB3为普通I/O(OC0不与引脚相连)
                          //CS02=0、CS01=1、CS00=0,8分频
    TCNT0=0x74;   //定时器频率=8M/8=100000HZ,定时器初值设定时间=(256-116)/100000=0.140ms
    //OCR0 =0x73;   //匹配值                       
    TIMSK |=0X01;  // 允许中断  
   
}  

// ------------------------------------------------- //

interrupt[TIM0_OVF] void timer_ovf(void)
{
  irtime++;
  TCNT0=0X74;   
}

使用特权

评论回复
沙发
pengf| | 2022-3-2 23:06 | 只看该作者
还有什么现象?能再详细描述下吗?

使用特权

评论回复
板凳
renyaq|  楼主 | 2022-3-2 23:09 | 只看该作者
主循环里有几句简单的判断语句,主要是想验证中断溢出的时间对不对,想在AVR Studio里看时间,但还没弄清该怎么验证,这个方法能验证码?

使用特权

评论回复
地板
dengdc| | 2022-3-2 23:12 | 只看该作者
不如直接烧录进去跑起来看看

使用特权

评论回复
5
dengdc| | 2022-3-2 23:15 | 只看该作者
好像这个在Proteus里也支持仿真。

使用特权

评论回复
6
yszong| | 2022-3-2 23:17 | 只看该作者
,里面有配置界面的,自己配置后,拷贝出来,就可以了,在AS 里改下中断函数

使用特权

评论回复
7
tian111| | 2022-3-2 23:19 | 只看该作者
直接跑起来挂示波器看看具体是多少延时。

使用特权

评论回复
8
dengdc| | 2022-3-2 23:23 | 只看该作者
你的系统时钟多少??

使用特权

评论回复
9
jlyuan| | 2022-3-2 23:25 | 只看该作者
0.14ms很短的哦.如果你系统时钟跑的太慢的话...............

使用特权

评论回复
10
stly| | 2022-3-2 23:27 | 只看该作者
中断要注意,开全局中断, 外设中断, 自身的那个中断使能

使用特权

评论回复
11
renyaq|  楼主 | 2022-3-2 23:31 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
12
tpgf| | 2022-4-1 19:03 | 只看该作者
楼主的目的是什么

使用特权

评论回复
13
labasi| | 2022-4-1 19:08 | 只看该作者
是不是时钟配置有问题啊

使用特权

评论回复
14
paotangsan| | 2022-4-1 19:14 | 只看该作者
需要如何更改中断函数呢

使用特权

评论回复
15
renzheshengui| | 2022-4-1 19:20 | 只看该作者
这个时间有点短啊

使用特权

评论回复
16
wakayi| | 2022-4-1 19:24 | 只看该作者
看不出来有什么问题啊

使用特权

评论回复
17
wowu| | 2022-4-1 19:31 | 只看该作者
延时时间对吗

使用特权

评论回复
18
procat| | 2022-4-13 17:01 | 只看该作者
if(irtime==100)应该改为if(irtime>=100)

使用特权

评论回复
19
pzsh| | 2022-4-20 10:21 | 只看该作者
用START界面好像也可以配置这个

使用特权

评论回复
20
hotcool| | 2022-4-20 16:50 | 只看该作者
盲区了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

粉丝