2 qq28628820 qq28628820 于 2016.05.10 15:10 提问

Atmel studio 6.0 编译之后PWM无输出,求大神指点

使用的是atmega48芯片,程序如下:
#include
#include
#include
#define F_CPU 8000000UL
#include
#include

#define uchar unsigned char
#define uint unsigned int

//控制单个io口
省略

uint a;
//各端口初始化
void PORT_INIT(void)
{
DDRD=(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4)|(1<<PD6)|(1<<PD7); //PD2,PD3,PD4,PD7,PD6为输出端口
PORTD=0x00;
DDRC=(1<<PC3)|(1<<PC4)|(1<<PC5); // 将AD转换口设置成输入
PORTC=0x00; // 不带上拉电阻
DDRB=(1<<PB1)|(1<<PB2) |(1<<PB3)|(1<<PB4)|(1<<PB5); //PORTB口的PB0,PB1,PB2设为输出口,其它为输入口
PORTB=0x00;//不带上拉电阻
}
void USART0_INIT(void)
{
cli(); //关总中断;
UCSR0B=0x00; //关闭USART0,包括使能和中断
UCSR0A=0x00; //不使用倍速发送
UCSR0C=(1<<UCSZ01)|(1<<UCSZ00); //字符长度为8位,1位停止位,无校验位
UBRR0L=103; //波特率的计算,此为8M的数值,4M时为51;
UBRR0H=0;
UCSR0B=(1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0); //接收使能和发送使能,开接收中断使能
sei(); //开总中断
}

void time0_init()
{

TCCR0A=(1<<COM0A1)|(1<<WGM01)|(WGM00);//快速PWM模式
TCCR0B=(1<<CS00);//无分频,启动时钟
OCR0A=0x60;
LEDG0;

}

void time1_init()
{
TCCR1A=(1<<COM1B1)|(WGM10);
TCCR1B=(1<<WGM12)|(1<<CS10);//wu分频、8位快速PWM
OCR1B=0xd9;
LEDR0;
}
void time2_init()
{

TCCR2A=(1<<COM2B1)|(1<<WGM21)|(WGM20);
TCCR2B=(1<<CS20);
OCR2B=0x0b;
LEDY0;

}

int main(void)
{
uint ADD_AVE,MUX; //AD转换后得到的数据
uint i=0;
a=0;
PORT_INIT();
//USART0_INIT();
wdt_enable(WDTO_2S);
wdt_reset();
PWM0;LEDG1;LEDR1;LEDY1;wdt_reset();
_delay_ms(1000);wdt_reset();
_delay_ms(1000);wdt_reset();
_delay_ms(1000);wdt_reset();
while(1)
{
if (a==0)
{
a=1;
time0_init();
time1_init();
time2_init();
}
OCR2B=20;
wdt_reset();
}
}

之前也做了许多程序没有问题,不知道怎么了之后重新编译之后都不能输出pwm

各种尝试没有结果,泪目...

1个回答

silehaixianghuirenj
silehaixianghuirenj   2016.10.08 01:29

#include
#include
#define F_CPU 8000000UL
#include
#include
#define uchar unsigned char
#define uint unsigned int
//控制单个io口
省略
uint a;
//各端口初始化
void PORT_INIT(void)
{
DDRD=(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4)|(1<<PD6)|(1<<PD7); //PD2,PD3,PD4,PD7,PD6为输出端口
PORTD=0x00;
DDRC=(1<<PC3)|(1<<PC4)|(1<<PC5); // 将AD转换口设置成输入
PORTC=0x00; // 不带上拉电阻
DDRB=(1<<PB1)|(1<<PB2) |(1<<P

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!