main.c文件:
/********************************
ATMega8 T/C1 PWM功能测试程序
文件名:main.c
编译:WinAVR-20070122
硬件环境:CA-M8X 打开的开关如下
S6(1,2) - 外部4MHz晶振
S1(7) - PB1接红LED
芯艺设计室 2004-2007 版权所有
转载请保留本注释在内的全部内容
WEB: http://www.chipart.cn
Email: changfutong@sina.com
*******************************/
#include
#include
//延时
void DelayMs(uint16_t ms)
{
uint16_t i;
for(i=0;i
_delay_loop_2(4 * 250);
}
int main (void)
{
uint8_t direction=1;
uint8_t 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;
DelayMs(10);
}
return 0;
}
\
执行效果:红色发光管亮灭间逐渐变化。
|
|