OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3999|回复: 2

关于avr输入捕捉的问题

[复制链接]

31

主题

104

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2013-5-30
在线时间
5 小时
发表于 2015-3-31 09:40:11 | 显示全部楼层 |阅读模式
5金钱
现在想用AVR的输入捕捉功能区捕捉一个16ms周期2ms高电平时间的方波
但是一直捕捉不到,求大神解释,急啊,急啊,不知道问题出在哪儿了,在线等啊,不胜感激
unsigned char up;
unsigned char down;

void port_init(void)  
{  
    PORTD = 0xFF;  //输入上拉电阻使能,输出引脚为高电平
    DDRD = 0xBF;  //PD4,PD5为输出,PD6为输入

void ICEInit(void)  
{  
    TCCR1A=0X00;//时钟与系统相同
    TCCR1B=0XC2;//使能噪声抑制,上升降沿触发,八分频,周期为1us
    TIMSK=0X20;//使能捕获中断  
}
void main(void)

    DDRA=0xFF;    //PD口设成输出口
    PORTA=0xFF; 
    port_init();//端口的初始化
    ICEInit();//输入捕获的初始化
    SEI();//打开总中断  
    while(1)
    {
         if((down>9)&&(down<11))
        {
            Set_Bit(PORTA,0);
            Clr_Bit(PORTA,0);  //PD0 置低
        }
        else if((down>19)&&(down<21))
        {
            Clr_Bit(PORTA,0); 
            Set_Bit(PORTA,0);  //PD0 置高
        }
    }
}
#pragma interrupt_handler CAPT_ISP:0X0A

void CAPT_ISP(void)
{
    unsigned char sreg;
    unsigned char ssreg;
    if(TCCR1B&(1<<ICES1))//假如是上升沿中断
    {
        ssreg = SREG;
        _CLI();
        up = TCNT1L;
        up |= ((unsigned int)TCNT1H << 8);//读取TCNT1的值
        SREG = ssreg;
        TCCR1B^=(1<<ICES1);
    }
    else//假如是下降沿中断
    {
        sreg = SREG;
        _CLI();
        down = TCNT1L;//读取TCNT1的值
        down |= ((unsigned int)TCNT1H << 8);
       if(up<down)
            down = (down - up)/10;
        SREG = sreg;
        TCCR1B |= (1<<ICES1);
    }
    TIFR&=(1<<ICF1);//清除中断标志位



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1839
金钱
1839
注册时间
2014-6-27
在线时间
982 小时
发表于 2015-3-31 12:01:57 | 显示全部楼层
哪有这样写的,就算程序逻辑上没有问题,看情况也是捕捉不到的。
回复

使用道具 举报

31

主题

104

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2013-5-30
在线时间
5 小时
 楼主| 发表于 2015-3-31 12:53:33 | 显示全部楼层
回复【2楼】TinyBoy:
---------------------------------
为什么呢,应该怎么改啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 07:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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