📄 main._c
字号:
/*--------------------------------------------------------
Atiny24-PWM: 此版本使用T0、T1共两路PWM,但目前两者还不能独立
PWM mode:
TCCR0A: COM0A1-COM0A0-COM0B1-COM0B0 - - WGM01-WGM00
TCCR0B: FOC0A-FOC0B - - WGM02-CS02-CS01-CS00
TCCR1A: COM1A1-COM1A0-COM1B1-COM1B0 - - WGM11-WGM10
TCCR1B: ICNC1-ICES1 - WGM13-WGM12-CS12-CS11-CS10
---------------------------------------------------------*/
#include "iot24v.h"
#include "macros.h"
#include "selffile.h"
unsigned int OCR0_temp,OCR1_temp;
/*----------------------------------------
主程序
----------------------------------------*/
void main(void)
{
NOP();
CLI();
WTCHDOG_init();
OCR0_temp=0;
OCR1_temp=0;
MCU_init();
WDR();
SEI();
while(1)
{
Delay_nms(500);
OCR0_temp+=1;
OCR1_temp+=0x10;
if(OCR0_temp>0xff)
OCR0_temp=0;
if(OCR1_temp>0x3ff)
OCR1_temp=0;
OCR0A=OCR0_temp;
OCR1A=OCR1_temp;
WDR();
}
}
/*----------------------------------------
系统初始化
----------------------------------------*/
void timer1_init(void)
{
TCNT1H=0x00;
TCNT1L=0x00;
OCR1AH=0x00;
OCR1AL=0xff;
TIMSK1=0x00;
TCCR1A=(1<<COM1A1)|(1<<WGM10)|(1<<WGM11);
TCCR1B=(1<<CS10);
}
void timer0_init(void)
{
TCCR0B=0x00;
TCNT0=0x00; //0xb0
OCR0A=0x80;
TIMSK0=0x00;
TCCR0A=(1<<COM0A1)|(1<<WGM00);
TCCR0B=(1<<CS00);
}
void MCU_init(void)
{
DDRA=(1<<PA6)|(1<<PA5);
DDRB=(1<<PB2);
MCUCR = 0x00;
GIMSK = 0x00;
timer0_init();
timer1_init();
}
/*----------------------------------------
看门狗设置
----------------------------------------*/
void WTCHDOG_init(void) //WTCHDOG: use the least frequency,about 2S
{
WDR();
WDTCSR=0x9f;
WDTCSR=0x0f;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -