📄 main.s
字号:
.module main.c
.area text(rom, con, rel)
.dbfile F:\Programme\软件备份\PWM1\main.c
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 18
; /*--------------------------------------------------------
; 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)
; {
.dbline 19
; NOP();
nop
.dbline 20
; CLI();
cli
.dbline 22
; //WTCHDOG_init();
; OCR1A_temp=0;
clr R2
clr R3
sts _OCR1A_temp+1,R3
sts _OCR1A_temp,R2
.dbline 23
; OCR1B_temp=0;
sts _OCR1B_temp+1,R3
sts _OCR1B_temp,R2
.dbline 25
;
; MCU_init();
xcall _MCU_init
.dbline 26
; SEI();
sei
L2:
.dbline 28
; while(1)
; ;
L3:
.dbline 27
xjmp L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e timer1_init _timer1_init fV
.even
_timer1_init::
.dbline -1
.dbline 47
; /*{
; 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)
; {
.dbline 48
; TCNT1H=0x00;
clr R2
out 0x2d,R2
.dbline 49
; TCNT1L=0x00;
out 0x2c,R2
.dbline 50
; OCR1AH=0x01;
ldi R24,1
out 0x2b,R24
.dbline 51
; OCR1AL=0x99;
ldi R24,153
out 0x2a,R24
.dbline 52
; OCR1BH=0x02;
ldi R24,2
out 0x29,R24
.dbline 53
; OCR1BL=0x65;
ldi R24,101
out 0x28,R24
.dbline 54
; TIMSK1=0x00;
out 0xc,R2
.dbline 55
; TCCR1A=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM10)|(1<<WGM11);
ldi R24,163
out 0x2f,R24
.dbline 56
; TCCR1B=(1<<CS10); //不分频,否则波形较差
ldi R24,1
out 0x2e,R24
.dbline -2
L5:
.dbline 0 ; func end
ret
.dbend
.dbfunc e MCU_init _MCU_init fV
.even
_MCU_init::
.dbline -1
.dbline 60
; }
;
; void MCU_init(void)
; {
.dbline 61
; DDRA=(1<<PA6)|(1<<PA5);
ldi R24,96
out 0x1a,R24
.dbline 62
; MCUCR = 0x00;
clr R2
out 0x35,R2
.dbline 63
; GIMSK = 0x00;
out 0x3b,R2
.dbline 64
; timer1_init();
xcall _timer1_init
.dbline -2
L6:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile F:\Programme\软件备份\PWM1\main.c
_OCR1B_temp::
.blkb 2
.dbsym e OCR1B_temp _OCR1B_temp i
_OCR1A_temp::
.blkb 2
.dbsym e OCR1A_temp _OCR1A_temp i
; }
;
; /*----------------------------------------
; 看门狗设置
; ----------------------------------------*/
; /*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 + -