📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile F:\Programme\软件备份\PWM1\main.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 .dbline -1
0000 .dbline 18
0000 ; /*--------------------------------------------------------
0000 ; Atiny24-PWM: 此版本使用T1的两路PWM输出
0000 ; PWM mode:
0000 ; TCCR0A: COM0A1-COM0A0-COM0B1-COM0B0 - - WGM01-WGM00
0000 ; TCCR0B: FOC0A-FOC0B - - WGM02-CS02-CS01-CS00
0000 ; TCCR1A: COM1A1-COM1A0-COM1B1-COM1B0 - - WGM11-WGM10
0000 ; TCCR1B: ICNC1-ICES1 - WGM13-WGM12-CS12-CS11-CS10
0000 ; ---------------------------------------------------------*/
0000 ; #include "iot24v.h"
0000 ; #include "macros.h"
0000 ; #include "selffile.h"
0000 ;
0000 ; unsigned int OCR1A_temp,OCR1B_temp;
0000 ; /*----------------------------------------
0000 ; 主程序
0000 ; ----------------------------------------*/
0000 ; void main(void)
0000 ; {
0000 .dbline 19
0000 ; NOP();
0000 0000 nop
0002 .dbline 20
0002 ; CLI();
0002 F894 cli
0004 .dbline 22
0004 ; //WTCHDOG_init();
0004 ; OCR1A_temp=0;
0004 2224 clr R2
0006 3324 clr R3
0008 30920300 sts _OCR1A_temp+1,R3
000C 20920200 sts _OCR1A_temp,R2
0010 .dbline 23
0010 ; OCR1B_temp=0;
0010 30920100 sts _OCR1B_temp+1,R3
0014 20920000 sts _OCR1B_temp,R2
0018 .dbline 25
0018 ;
0018 ; MCU_init();
0018 14D0 xcall _MCU_init
001A .dbline 26
001A ; SEI();
001A 7894 sei
001C L2:
001C .dbline 28
001C ; while(1)
001C ; ;
001C L3:
001C .dbline 27
001C FFCF xjmp L2
001E X0:
001E .dbline -2
001E L1:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
0020 .dbfunc e timer1_init _timer1_init fV
.even
0020 _timer1_init::
0020 .dbline -1
0020 .dbline 47
0020 ; /*{
0020 ; Delay_nms(200);
0020 ; OCR1A_temp+=2;
0020 ; OCR1B_temp+=4;
0020 ; if(OCR1A_temp>=0x3ff)
0020 ; OCR1A_temp=0;
0020 ; if(OCR1B_temp>=0x3ff)
0020 ; OCR1B_temp=0;
0020 ;
0020 ; OCR1A=OCR1A_temp;
0020 ; OCR1B=OCR1B_temp;
0020 ; }*/
0020 ; }
0020 ;
0020 ; /*----------------------------------------
0020 ; 系统初始化
0020 ; ----------------------------------------*/
0020 ; void timer1_init(void)
0020 ; {
0020 .dbline 48
0020 ; TCNT1H=0x00;
0020 2224 clr R2
0022 2DBC out 0x2d,R2
0024 .dbline 49
0024 ; TCNT1L=0x00;
0024 2CBC out 0x2c,R2
0026 .dbline 50
0026 ; OCR1AH=0x01;
0026 81E0 ldi R24,1
0028 8BBD out 0x2b,R24
002A .dbline 51
002A ; OCR1AL=0x99;
002A 89E9 ldi R24,153
002C 8ABD out 0x2a,R24
002E .dbline 52
002E ; OCR1BH=0x02;
002E 82E0 ldi R24,2
0030 89BD out 0x29,R24
0032 .dbline 53
0032 ; OCR1BL=0x65;
0032 85E6 ldi R24,101
0034 88BD out 0x28,R24
0036 .dbline 54
0036 ; TIMSK1=0x00;
0036 2CB8 out 0xc,R2
0038 .dbline 55
0038 ; TCCR1A=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM10)|(1<<WGM11);
0038 83EA ldi R24,163
003A 8FBD out 0x2f,R24
003C .dbline 56
003C ; TCCR1B=(1<<CS10); //不分频,否则波形较差
003C 81E0 ldi R24,1
003E 8EBD out 0x2e,R24
0040 .dbline -2
0040 L5:
0040 .dbline 0 ; func end
0040 0895 ret
0042 .dbend
0042 .dbfunc e MCU_init _MCU_init fV
.even
0042 _MCU_init::
0042 .dbline -1
0042 .dbline 60
0042 ; }
0042 ;
0042 ; void MCU_init(void)
0042 ; {
0042 .dbline 61
0042 ; DDRA=(1<<PA6)|(1<<PA5);
0042 80E6 ldi R24,96
0044 8ABB out 0x1a,R24
0046 .dbline 62
0046 ; MCUCR = 0x00;
0046 2224 clr R2
0048 25BE out 0x35,R2
004A .dbline 63
004A ; GIMSK = 0x00;
004A 2BBE out 0x3b,R2
004C .dbline 64
004C ; timer1_init();
004C E9DF xcall _timer1_init
004E .dbline -2
004E L6:
004E .dbline 0 ; func end
004E 0895 ret
0050 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\Programme\软件备份\PWM1\main.c
0000 _OCR1B_temp::
0000 .blkb 2
0002 .dbsym e OCR1B_temp _OCR1B_temp i
0002 _OCR1A_temp::
0002 .blkb 2
0004 .dbsym e OCR1A_temp _OCR1A_temp i
0004 ; }
0004 ;
0004 ; /*----------------------------------------
0004 ; 看门狗设置
0004 ; ----------------------------------------*/
0004 ; /*void WTCHDOG_init(void) //WTCHDOG: use the least frequency,about 2S
0004 ; {
0004 ; WDR();
0004 ; WDTCSR=0x9f;
0004 ; WDTCSR=0x0f;
0004 ; }*/
0004 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -