/*
* ceshi.c
*
* Created: 2013/8/6 星期二 15:47:24
* Author: JZY_
*/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
unsigned char max_pwm;
unsigned char min_pwm;
unsigned char i;
unsigned char key0;
unsigned char mode; /* 0:常亮 1:呼吸 */
void key()
{
if(PINB & (1<<PINB3)) key0=0;
else key0=1;
if (key0==1)
{
if (mode)
{
mode=0;
}
else
{
mode=1;
}
key0=0;
}
}
void pwm_run()
{
for (i=min_pwm;i<max_pwm;i++)
{
OCR0B = i;_delay_ms(3);
//key();
//if (mode==0)
//{
//return;
//}
}
for (i=max_pwm;i>min_pwm;i--)
{
OCR0B = i;_delay_ms(3);
//key();
//if (mode==0)
//{
//return;
//}
}
}
int main(void)
{
max_pwm = 149; //PWM时间初始值
min_pwm = 0;
key0 = 0;
mode = 1;
DDRB=0x03;
PORTB=0x08;
TCCR0A=0X63;
TCCR0B=0X1B;
OCR0A=150;
OCR0B=10;
while(1)
{
//key0=PINB&(1<<2);
if (key0 == 0)
{
pwm_run();
}
//key();
//TODO:: Please write your application code
}
}