搜索
bottom↓
回复: 4

马老师,为什么我的M16 INT0、1及T1捕获都不管用呢?我是这样设置的

[复制链接]

出0入0汤圆

发表于 2005-7-22 13:25:22 | 显示全部楼层 |阅读模式
我是想用中断来检测车速的,没想到3个外中断都不能用,但是定时器中断正常

实在搞不明白,特此请教!!



/*===========上升沿触发============*/

int catch_init(void)                //捕捉中断初始化

{

        TCCR1B|=(1<<CS11)|(1<<CS10);                //分频比为64    0X03

        TIMSK        =1<<TICIE1;                        //允许T1捕捉中断

        DDRB        =0XFF;                                //设置PB为输出

        DDRD        =0X20;                                //PD6设为输入

        SREG=0X80;       

        return 0;

}       

//=========================================

//INT0 init

int init_int0(void)

{

        DDRD=0X00;                                        //PD2设置

        GICR|=_BV(INT0);                                //INT0 EN

        MCUCR=_BV(ISC01)|_BV(ISC00);        //上升沿触发

        SREG=0X80;                         //总中断开

        return 0;

}

//=========================================

int init_int1(void)

{

        DDRD=0X00;                                        //PD2设置

        GICR=_BV(INT1);                                //INT0 EN

        MCUCR=_BV(ISC01)|_BV(ISC00);        //上升沿触发

        SREG=0X80;                         //总中断开

        return 0;

}



SIGNAL3(SIG_INPUT_CAPTURE1)//捕捉中断程序

{

       

}



SIGNAL0(SIG_INTERRUPT0)   //INT0 中断程序               

{

       

}

SIGNAL1(SIG_INTERRUPT1)   //INT1 中断程序                       

{

       

}

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2005-7-25 23:12:40 | 显示全部楼层
INT0没有捕获中断。请使用ICCAVR或CVAVR的程序生成器生成一个INT1捕获中断初始化程序,参考该程序写你自己的初始化程序。

出0入0汤圆

 楼主| 发表于 2005-7-27 12:26:53 | 显示全部楼层
已经可以了,是中断入口设错了!

出0入0汤圆

发表于 2005-8-8 22:08:39 | 显示全部楼层
jpjavr 你好:

    今天刚看了你的贴子,惊讶的发现我现在遇到的问题和你一样,我也是用ICP捕捉中断来测量方波的频率从而测的转速,但是现在总是进不了中断,不知道为什么,恳请你交流一下你的调试经验,特此请教!

出0入0汤圆

发表于 2011-11-28 21:08:05 | 显示全部楼层
回复【3楼】huishu07
-----------------------------------------------------------------------

回复【楼主位】jpjavr
-----------------------------------------------------------------------

帮我看我的程序啊,很简单的INT0实现不了了,下面是程序

#include<iom16v.h>
#pragma interrupt_handler kongzhi:2

void kongzhi()
{


PORTB = 0Xff;    /*PB口接LED,全灭*/


}

int main()
{
DDRB=0xff;
DDRD=0x00;
PORTD=0xff;
PORTB=0b10101010;
GICR=0x40;
MCUCR=0x02;

asm("sei");


while(1);
  



}


谢谢了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 08:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表