?? 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 + -