📄 m16pwm._c
字号:
/*******************************************************************
实验九
实验名称: PWM转换实验
实验目的: 学习AVR单片机的PWM功能
实验现象: 在PB3端口看到波形
环 境: ICCAVR6.31A
设 计 者:
完成日期: 2007年4月10日
*******************************************************************/
#include <iom16v.h>
#include <macros.h>
#define OC0_OUT_EN DDRB |= 0b00001000
/*-----------------------------------------------------------------
函数名称: void Timer0Init(void)
函数功能:
参 数:
返 回 值: 无
-----------------------------------------------------------------*/
void Timer0Init(void)
{
TCCR0 = (1<<WGM01)|(1<<WGM00)|(1<<COM01)|(1<<COM00)|(1<<CS00);
/*
WGM01=1; WGM00=1; --> fast PWM modle
COM01=1; COM00=0; --> 比较匹配时set OC0 pin
CS00=1; --> timer0 source 不经过任何分频,直接为Clk,使得PWM可以工作得足够快
*/
TCNT0 = 0x00; //设置TC0计数寄存器初值
OCR0 = 0xe0; //输出比较寄存器初值,设置该值可用于调节占空比
}
/*-----------------------------------------------------------------
函数名称:
函数功能:
参 数:
返 回 值: 无
-----------------------------------------------------------------*/
void main(void)
{
OC0_OUT_EN; //为允许PWM工作,需设置PB3为输出
Timer0Init();
SEI();
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -