📄 main.c
字号:
#include <avr/io.h>
#include <12864_12.h>
#include <avr/signal.h>
#include <avr/delay.h>
#include <remote_key.h>
#include <pwm.h>
#include <string.h>
#include <avr/pgmspace.h>
//#include <stdio.h>
//#include <LCD1602.h>
void init_timer0_OVF(void)
{
TCCR0|=(1<<CS01); //分频比8,T/C0分辨率为8/8=1uS,溢出值256uS
TIFR|=1<<TOV0; //TC0溢出中断
TIMSK|=1<<TOIE0;
}
SIGNAL(SIG_OVERFLOW0)
{
RTC++;
}
int main(void)
{
unsigned int sign=0;
unsigned char i;
init_timer0_OVF();
init_tc1_pwm();
init_int0();
lcd_init();
DDRD&=~(1<<2);
SREG|=1<<SREG_I;
puta(0x0a,0xa0);
for(i=0;i<10;i++) _delay_ms(200);
put_string(welcoma,0,0,8);
for(i=0;i<10;i++) _delay_ms(200);
put_string(welcomb,0,1,8);
for(i=0;i<10;i++) _delay_ms(200);
put_string(welcomc,0,2,8);
for(i=0;i<1;i++) _delay_ms(200);
put_string(welcomd,0,3,8);
for(i=0;i<7;i++) _delay_ms(200);
print_bmp(bmp2);
/*for(i=0;i<5;i++) _delay_ms(200);
print_bmp(bmp1);
for(i=0;i<5;i++) _delay_ms(200);
print_bmp(bmp3);
for(i=0;i<20;i++) _delay_ms(200);
print_bmp(bmp4);
for(i=0;i<20;i++) _delay_ms(200);*/
while(1)
{
while(DataReady)
{
switch(DataIn>>=8)
{
case 0x22:
{
if((OCR1BL>0)&&(OCR1BL<=25))
OCR1AL=OCR1BL=OCR1BL-1;
else if((OCR1BL>25)&&(OCR1BL<=65))
OCR1AL=OCR1BL=OCR1BL-5;
else if((OCR1BL>65)&&(OCR1BL<=127))
OCR1AL=OCR1BL=OCR1BL-10;
else if((OCR1BL>127)&&(OCR1BL<=200))
OCR1AL=OCR1BL=OCR1BL-10;
else if((OCR1BL>200)&&(OCR1BL<=240))
OCR1AL=OCR1BL=OCR1BL-5;
else if((OCR1BL>240)&&(OCR1BL<=255))
OCR1AL=OCR1BL=OCR1BL-1;
}
break;
case 0x2a:
{
if((OCR1BL>=0)&&(OCR1BL<=25))
OCR1AL=OCR1BL=OCR1BL+1;
else if((OCR1BL>25)&&(OCR1BL<=65))
OCR1AL=OCR1BL=OCR1BL+5;
else if((OCR1BL>65)&&(OCR1BL<=127))
OCR1AL=OCR1BL=OCR1BL+10;
else if((OCR1BL>127)&&(OCR1BL<=200))
OCR1AL=OCR1BL=OCR1BL+10;
else if((OCR1BL>200)&&(OCR1BL<=240))
OCR1AL=OCR1BL=OCR1BL+5;
else if((OCR1BL>240)&&(OCR1BL<255))
OCR1AL=OCR1BL=OCR1BL+1;
}
break;
case 0x20:
{
OCR1AL=0;
OCR1BL=255;
}
break;
case 0x30:
{
OCR1AL=255;
OCR1BL=0;
}
break;
case 0x08:
{
OCR1AL=0;
OCR1BL=0;
}
break;
case 0x28:
{
OCR1AL=255;
OCR1BL=255;
}
break;
case 0x00:
{
OCR1AL=127;
OCR1BL=128;
}
break;
}
_delay_ms(250);
DataReady=0;
}
sign++;
/*switch(sign)
{
case 1: put_string(welcoma,0,0,8);break;
case 1000: put_string(welcomb,0,1,8);break;
case 2000: put_string(welcomc,0,2,8);break;
case 3000: put_string(welcomd,0,3,8);break;
}*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -