美文网首页
EX8AVR ATmega8A 16位定时器TC1 fast p

EX8AVR ATmega8A 16位定时器TC1 fast p

作者: 山前雨1 | 来源:发表于2018-06-14 10:29 被阅读9次

//EX8AVR ATmega8A 16位定时器TC1 fast pwm modle-模式5//author:QI小米粥//data:2018.3.16#include#includevoid init(void)

{

DDRB |=0X06;//oca,ocb设置位输出

PORTB &=~0X06;//初始是低电平

TCCR1A |=0XA0;//匹配的时候置位,也就是 non-inverting  mode

TCCR1A &=~0X50;

/*

TCCR1A |=BIT(0);//选择工作模式5//top值固定为0XFF

TCCR1A &=~BIT(1);

TCCR1B |=BIT(3);

TCCR1B &=~BIT(4);

*/

/*

TCCR1A |=BIT(1);//选择工作模式6//top值固定为0X1FF

TCCR1A &=~BIT(0);

TCCR1B |=BIT(3);

TCCR1B &=~BIT(4);

*/

TCCR1A |=BIT(0);//选择工作模式7//top值固定为0X3FF

TCCR1A |=BIT(1);

TCCR1B |=BIT(3);

TCCR1B &=~BIT(4);

TCCR1B &=~BIT(2);//tc1频率8M/64=128KHz

TCCR1B |=0x03;

OCR1A=0X0055;

OCR1B=0X00AA;

//TCNT1=0X0000;//在这个模式下是自动循环的不需要对计数器进行写操作,因此不要写否则会出错。

SREG |=BIT(7);//全局中断打开

TIMSK |=BIT(4);//0ca中断打开

TIMSK |=BIT(3);//OCB中断打开

TIMSK |=BIT(2);//溢出中断打开

}

#pragma interrupt_handler oca:7

void oca(void)

{

}

void main(void)

{

init();

}

相关文章

网友评论

      本文标题:EX8AVR ATmega8A 16位定时器TC1 fast p

      本文链接:https://www.haomeiwen.com/subject/llbeeftx.html