📄 time2.s
字号:
.module time2.c
.area text(rom, con, rel)
.dbfile E:\TWINTI~1\time2.c
.dbfunc e timer2_init _timer2_init fV
.even
_timer2_init::
.dbline -1
.dbline 30
; /********************************************************************************/
; //
; // builder : 2007-04-10
; // Target : ATMEAG 48V
; // Crystal : 内部 8.00 MHz
; //
; // PWM 模块
;
; /********************************************************************************/
;
;
; #include <iom48v.h>
; #include <macros.h>
;
; #define uchar unsigned char
; #define uint unsigned int
;
; #define CLR_REV1 PORTD &= ~(1<<PD6)
; #define SET_REV1 PORTD |= (1<<PD6)
;
; #define CLR_JUST1 PORTB &= ~(1<<PB4)
; #define SET_JUST1 PORTB |= (1<<PB4)
;
;
;
; //TIMER0 initialize - prescale:8
; // desired value: 1Hz
; // actual value: Out of range
; extern void timer2_init(void)
; {
.dbline 31
; TCCR2B = 0x00; //stop
clr R2
sts 177,R2
.dbline 32
; ASSR = 0x00; //set async mode
sts 182,R2
.dbline 33
; TCNT2 = 0x01; //setup
ldi R24,1
sts 178,R24
.dbline 34
; TCCR2A = 0xA1;
ldi R24,161
sts 176,R24
.dbline 35
; OCR2B = 0x00;
sts 180,R2
.dbline 36
; TCCR2B = 0x02;
ldi R24,2
sts 177,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Pwm_set _Pwm_set fV
; rev -> R18
; pwm -> R16
.even
_Pwm_set::
.dbline -1
.dbline 44
; }
;
; /*---------------------------------------------------------------
; PWM 占空比设置
; ----------------------------------------------------------------*/
;
; extern void Pwm_set(uchar pwm,uchar rev)
; {
.dbline 45
; if(rev==2)
cpi R18,2
brne L3
.dbline 46
; {
.dbline 47
; OCR2A = 0;
clr R2
sts 179,R2
.dbline 48
; OCR2B = pwm;
sts 180,R16
.dbline 49
; CLR_REV1;
cbi 0xb,6
.dbline 50
; SET_JUST1;
sbi 0x5,4
.dbline 51
; }
rjmp L4
L3:
.dbline 52
; else if(rev==1)
cpi R18,1
brne L5
.dbline 53
; {
.dbline 54
; OCR2A = pwm;
sts 179,R16
.dbline 55
; OCR2B = 0;
clr R2
sts 180,R2
.dbline 56
; SET_REV1;
sbi 0xb,6
.dbline 57
; CLR_JUST1;
cbi 0x5,4
.dbline 58
; }
rjmp L6
L5:
.dbline 59
; else if(rev==3)
cpi R18,3
brne L7
.dbline 60
; {
.dbline 61
; OCR2A = pwm;
sts 179,R16
.dbline 62
; OCR2B = pwm;
sts 180,R16
.dbline 63
; CLR_REV1;
cbi 0xb,6
.dbline 64
; CLR_JUST1;
cbi 0x5,4
.dbline 65
; }
rjmp L8
L7:
.dbline 67
; else
; {
.dbline 68
; OCR2A = 0;
clr R2
sts 179,R2
.dbline 69
; OCR2B = 0;
sts 180,R2
.dbline 70
; CLR_REV1;
cbi 0xb,6
.dbline 71
; CLR_JUST1;
cbi 0x5,4
.dbline 72
; }
L8:
L6:
L4:
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbsym r rev 18 c
.dbsym r pwm 16 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -