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

📄 oc2pwm.s

📁 ATmega16应用例子
💻 S
字号:
	.module OC2PWM.C
	.area text(rom, con, rel)
	.dbfile E:\ProductPro\M16SD\ICCAVR\PWM\OC2PWM\OC2PWM.C
	.dbfunc e timer2_init _timer2_init fV
	.even
_timer2_init::
	.dbline -1
	.dbline 5
; #include<iom16v.h> 
; #include<macros.h> 
; 
; void timer2_init(void) 
; { 
	.dbline 6
; 	TCCR2 = (1<<WGM21)|(1<<WGM20)|(1<<COM21)|(1<<COM20)|(1<<CS20);	
	ldi R24,121
	out 0x25,R24
	.dbline 12
; /*
; 	WGM21=1; WGM20=1; --> fast PWM modle
; 	COM21=1; COM20=0; --> 比较匹配时set OC2 pin
; 	CS20=1;  --> timer2 source 不经过任何分频,直接为Clk,使得PWM可以工作得足够快
; */
; 	TCNT2 = 0x00;			//设置TC2计数寄存器初值 
	clr R2
	out 0x24,R2
	.dbline 13
; 	OCR2  = 0xfa;			//输出比较寄存器初值,设置该值可用于调节占空比
	ldi R24,250
	out 0x23,R24
	.dbline -2
	.dbline 14
; } 
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 17
; 
; void main(void) 
; {
	.dbline 18
; 	DDRD  |= 0b10000000;	//为允许PWM工作,需设置PD7为输出
	sbi 0x11,7
	.dbline 19
; 	timer2_init(); 
	xcall _timer2_init
	.dbline 20
; 	SEI(); 
	sei
L3:
	.dbline 21
L4:
	.dbline 21
	xjmp L3
X0:
	.dbline -2
	.dbline 22
; 	while(1);
; }
L2:
	.dbline 0 ; func end
	ret
	.dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -