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

📄 oc2pwm.lis

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

⌨️ 快捷键说明

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