📄 oc0pwm.s
字号:
.module OC0PWM.C
.area text(rom, con, rel)
.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\内核及主板相关试验\内核-PWM\OC0PWM\OC0PWM.C
.dbfunc e timer0_init _timer0_init fV
.even
_timer0_init::
.dbline -1
.dbline 49
; /*********************************************************************
; 微 雪 电 子 WaveShare http://www.waveShare.net
;
; 目 的: 建立使用OC0做PWM的示例程序
;
; 目标系统: 基于AVR单片机
;
; 应用软件: ICCAVR
;
; 版 本: Version 1.0
;
; 圆版时间: 2005-06-25
;
; 开发人员: SEE
;
; 说 明: 若用于商业用途,请保留此段文字或注明代码来源
;
; 深 圳 微 雪 电 子 保 留 所 有 的 版 权
; *********************************************************************/
;
; /*01010101010101010101010101010101010101010101010101010101010101010101
; ----------------------------------------------------------------------
; 版本更新记录:
; 版 本: Version 1.1
; 圆版时间: 2005-03-25
;
; ----------------------------------------------------------------------
; 接入模块:
; 接口说明:
; ----------------------------------------------------------------------
; 注意事项:
;
; ----------------------------------------------------------------------
; 10101010101010101010101010101010101010101010101010101010101010101010*/
;
; #include <iom16v.h>
; #include <macros.h>
;
; #define OC0_OUT_EN DDRB |= 0b00001000
; /*--------------------------------------------------------------------
; 函数名称:
; 函数功能:
; 注意事项:
; 提示说明:
; 输 入:
; 返 回:
; --------------------------------------------------------------------*/
; void timer0_init(void)
; {
.dbline 50
; TCCR0 = (1<<WGM01)|(1<<WGM00)|(1<<COM01)|(1<<COM00)|(1<<CS00);
ldi R24,121
out 0x33,R24
.dbline 56
; /*
; WGM01=1; WGM00=1; --> fast PWM modle
; COM01=1; COM00=0; --> 比较匹配时set OC0 pin
; CS00=1; --> timer0 source 不经过任何分频,直接为Clk,使得PWM可以工作得足够快
; */
; TCNT0 = 0x00; //设置TC0计数寄存器初值
clr R2
out 0x32,R2
.dbline 57
; OCR0 = 0xe0; //输出比较寄存器初值,设置该值可用于调节占空比
ldi R24,224
out 0x3c,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 68
; }
; /*--------------------------------------------------------------------
; 函数名称:
; 函数功能:
; 注意事项:
; 提示说明:
; 输 入:
; 返 回:
; --------------------------------------------------------------------*/
; void main(void)
; {
.dbline 69
; OC0_OUT_EN; //为允许PWM工作,需设置PB3为输出
sbi 0x17,3
.dbline 70
; timer0_init();
xcall _timer0_init
.dbline 71
; SEI();
sei
L3:
.dbline 72
L4:
.dbline 72
xjmp L3
X0:
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -