AVR单片机用普通IO口怎么写边缘触发的程序呢??
展开全部
边缘信号,其实就是电平发生变化的信号。
基本的思想就是下面这样,具体问题,还可以优化,有什么不懂的欢迎提问。
//捕捉PA端口,三号脚程序为例
unsigned char tempPINA_3;
tempPINA_3 = PINA&(1<<3);
for(;;)
{
if ( tempPINA_3 != (PINA&(1<<3)) )
{
tempPINA_3 = PINA&(1<<3);
if( tempPINA_3 )
{/* 上升沿程序 */}
else
{/* 下降沿程序 */}
}
}
基本的思想就是下面这样,具体问题,还可以优化,有什么不懂的欢迎提问。
//捕捉PA端口,三号脚程序为例
unsigned char tempPINA_3;
tempPINA_3 = PINA&(1<<3);
for(;;)
{
if ( tempPINA_3 != (PINA&(1<<3)) )
{
tempPINA_3 = PINA&(1<<3);
if( tempPINA_3 )
{/* 上升沿程序 */}
else
{/* 下降沿程序 */}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
AVR怎么就不能用汇编写了?
普通IO口做边缘触发,在中断里判断,这个中断时间最好比较短,几十微秒应该差不多了,判断前一次与当前一次的电平是否有变化,如果有,那就设个标志,退出中断后就可以去执行你触发的程序了
普通IO口做边缘触发,在中断里判断,这个中断时间最好比较短,几十微秒应该差不多了,判断前一次与当前一次的电平是否有变化,如果有,那就设个标志,退出中断后就可以去执行你触发的程序了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GPIO除非用查询来判断边沿的,你要知道,中断的沿触发是硬件产生的,使用的是硬件触发电路,而不是软件判断的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该跟51差不多吧!去看看中断寄存器里面是咋写的
追问
AVR不能用汇编写的,51看他们用汇编不用中断,就是普通IO口都可以写出边缘触发的程序。。。所以想不用中断,能不能写出来呢?
追答
那就不知道了1我用51的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询