打印
[AVR单片机]

请教外部中断问题

[复制链接]
2343|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nbj846589308|  楼主 | 2013-6-19 18:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nbj846589308 于 2013-6-20 08:28 编辑

本人avr菜鸟,在用atmega128 产生一系列占空比可调的方波,想实现这样的功能:外部中断0接按钮,按钮按下后能够产生中断程序中设置的占空比的方波,使用定时器3快速pwm。ORC3A为top值,ORC3B和ORC3C为匹配值。     程序如下,问题,按下int0的时候,方波的占空比并不改变,请教各位前辈,这是哪里有问题呢? 编译器是iccavr7

#include "iom128v.h"
#include "macros.h"
//#include "cfg.h"
#pragma interrupt_handler Int0_isr:2
void Int0_isr(void)
{
  //delay_nms(20);
  TCNT3H=0x00;
  TCNT3L=0x00;
  OCR3BH=0x00;
  OCR3BL=0x96;
  OCR3CH=0x00;
  OCR3CL=0x96;
}


void main(void)
{
DDRE=0xFF; //PB口配置为输出
PORTE=0xFF; //PB口初始值为"1"
DDRD=0x70;//设置PD0为输入
PORTD=0xff;//设置PD0内部上拉电阻有效
EICRA=0x02;//设置外部中断0为下降沿有效
EIMSK=0x11;
SREG|=0x80;
MCUCSR=0x00;   
OCR3AH=0x00;
OCR3AL=0xc7;
OCR3BH=0x00;
OCR3BL=0x64;
OCR3CH=0x00;
OCR3CL=0x64;
TCCR3A=0x3b; //配置定时器工作在快速PWM模式
TCCR3B=0x19; //设置为无预分频,设置定时器3的B通道发出信号,C通道发出相反的信号
TCCR3C=0x00;
                                                                 
while(1);

}

相关帖子

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

本版积分规则

3

主题

15

帖子

0

粉丝