美文网首页
EX7AVR ATmega8A 16位定时器TC1CTC-模式1

EX7AVR ATmega8A 16位定时器TC1CTC-模式1

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

//EX6AVR ATmega8A 16位定时器TC1CTC-模式12//author:QI小米粥//data:2018.3.15#include#includechar a=0;

void init(void)

{

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

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

TCCR1A |=0X50;//输出模式位反转

TCCR1A &=~0XA0;

TCCR1A &=~0X03;//选择工作模式12

TCCR1B |=BIT(3);

TCCR1B |=BIT(4);

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

TCCR1B |=0x03;

ICR1=0X0000;//设置top值

//OCR1B=0X8000;//设置OCR1B的匹配中断值

TCNT1=0X0000;//设置初始的计数器值

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

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

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

}

#pragma interrupt_handler oca:7

void oca(void)

{

if(a)

{

  ICR1 +=0X2000;

a=0;

}

else

{a=1;}

if(PORTB&BIT(4))

  {PORTB &= ~BIT(4);}

else

  {PORTB |=BIT(4);}

}

#pragma interrupt_handler ocb:8

void ocb(void)

{

}

void main(void)

{

init();

}

相关文章

网友评论

      本文标题:EX7AVR ATmega8A 16位定时器TC1CTC-模式1

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