⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main._c

📁 用Attiny24的T1定时器产生10位PWM波形
💻 _C
字号:
/*--------------------------------------------------------
   Atiny24-PWM:  此版本使用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 OCR1A_temp,OCR1B_temp;
/*----------------------------------------
  主程序
----------------------------------------*/
void  main(void)
{
    NOP();
    CLI();
	//WTCHDOG_init();
	OCR1A_temp=0;
	OCR1B_temp=0;
	
    MCU_init();
	SEI();
	while(1)
	;
	/*{
	   Delay_nms(200);
	   OCR1A_temp+=2;
	   OCR1B_temp+=4;
	   if(OCR1A_temp>=0x3ff)
	      OCR1A_temp=0;
	   if(OCR1B_temp>=0x3ff)
	      OCR1B_temp=0;
	   
	   OCR1A=OCR1A_temp;
	   OCR1B=OCR1B_temp;
	}*/
}

/*----------------------------------------
  系统初始化
----------------------------------------*/
void  timer1_init(void)
{
	TCNT1H=0x00;
	TCNT1L=0x00;
	OCR1AH=0x01;             //
	OCR1AL=0x99;
	OCR1BH=0x02;
	OCR1BL=0x65;
	TIMSK1=0x00;
	TCCR1A=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM10)|(1<<WGM11);    //
	TCCR1B=(1<<CS10);        //不分频,否则波形较差
}

void  MCU_init(void)
{
    DDRA=(1<<PA6)|(1<<PA5);
	MCUCR = 0x00;
    GIMSK = 0x00;
	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 + -