找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4595|回复: 1
打印 上一主题 下一主题
收起左侧

中断里使用变量会使 执行时间变长

[复制链接]
跳转到指定楼层
楼主
ID:33113 发表于 2011-11-8 17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#define F_CPU 16000000UL  // 16 MHz
#include <stdio.h>
#include<avr/io.h>
#include<avr/interrupt.h>
#include <util/delay.h>
unsigned char time_us=0x00;
unsigned char i=0;
unsigned char u=0;

//volatile
int main()
{

DDRA=0x00;
PORTA=0x00;
DDRB=0xFF;
PORTB=0x00;
DDRC=0x00;
PORTC=0x00;
DDRD=0x00;
PORTD=0xFF;
MCUCR=0x02; //上升沿触发
GICR=0x40;//in0使能
SREG=0x80;
while(1)
{

u=0x01;}}

 ISR(INT0_vect) {   _delay_us(u);PORTB=(0xFF);}

 

求助:中断程序里 _delay_us(u); 的变量u 会使 我的中断程序执行件变长。 请高手指点 我的目的是希望PORTB在中断触发2uS左右动作,并且希望时间可调。

例如 我若 使用 _delay_us(2) 执行两微秒 是正常的;使用 _delay_us(u);时 执行时间会变成 60多微秒。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:33113 发表于 2011-11-9 08:26 | 只看该作者

高手  回复一个阿 

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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