微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 以下程序为什么能够使LED灯闪烁?

以下程序为什么能够使LED灯闪烁?

时间:10-02 整理:3721RD 点击:
#define F_CPU  4000000UL
#include<avr/io.h>
#include<avr/interrupt.h>
#define INT8U  unsigned char
#define INT16U unsigned int
#define LED_BLINK()  (PORTC^=0x01)
INT16U  T_Count=0;
int main()
{
    DDRC=0x01;
TCCR0=0x05;   // T/C0控制寄存器  用于选择计数器的计数源、工作模式和比较输出的方式等CS0[2:0]:T/C0时钟源选择。低三位101 clk/1024
TCNT0=256-F_CPU/1024.0*0.05;   //计算寄存器
TIMSK=0x01;       //使能T0中断
sei();            //开中断
    while(1);
}
//T0定时器溢出中断服务程序
ISR(TIMER0_OVF_vect)
{
    TCNT0=256-F_CPU/1024.0*0.05;
if(++T_Count!=5) return;
    T_Count=0;
    LED_BLINK();
}

你到底是想问什么?

就是程序是怎么运行的,运行的顺序和它为何能够使LED闪烁。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top