?? main.c
字號:
/*
ATMega8 PWM 功能(T/C 1)測試程序
main.c
硬件:CA-M8
時鐘:4MHz
芯藝 2004-12-01
*/
#include <avr/io.h>
#include <avr/delay.h>
#define uchar unsigned char
#define uint unsigned int
#define FREQ 4
//延時
void DelayMs(uint ms)
{
uint i;
for(i=0;i<ms;i++)
_delay_loop_2(FREQ * 250);
}
int main (void)
{
uchar direction=1;
uchar pwm=0;
// 8位相位修正PWM模式
// OC1A 向上計數過程中比較匹配時清零
// 向下計數過程中比較匹配時置位
// 時鐘源:4MHz/64 PWM頻率:4MHz/(64*256)=122Hz
TCCR1A=_BV(COM1A1)/*|_BV(COM1B1)*/|_BV(WGM10);
TCCR1B=_BV(CS11)|_BV(CS10);
TCNT1=0;
DDRB|=_BV(PB1)/*|_BV(PB2)*/;//OC1A pwm輸出引腳允許
//循環改變PWM輸出脈寬,使接在OC1A引腳上的發光管亮度發生變化
while(1)
{
if(direction)
{
if(++pwm==254)
direction=0;
}
else
{
if(--pwm==0)
direction=1;
}
OCR1A=pwm;
//OCR1B=pwm;
DelayMs(10);
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -