El zumbador no funciona con retraso avr atmega162

0

Hola, tengo un problema que será sencillo para ustedes, pero soy un novato, así que es difícil para mí hacer las cosas correctamente,

Tengo un zumbador conectado con PinC0 de atmega162, con cristal 12MHz El problema es que no produce pitidos con retrasos.

#define F_CPU 12000000UL
#include<avr/io.h>
#include<util/delay.h>

int main(void)
{
DDRC |= 1<<PINC0;
PORTC |= 1<<PINC0;
while(1){
PORTC ^=1<<PINC0;
_delay_ms(1000);
}
}

El zumbador se conecta a PINc0 y luego se conecta a tierra en otro extremo. es solo un zumbador común. No sé su modelo o hoja de datos

Todo funcionaba bien algunos días antes de que no supiera exactamente qué sucedió de repente.

Proteus Simulation funciona correctamente pero en tiempo real produce un pitido largo en voz lenta sin demoras

A la espera de sus respuestas de tasación. :)

    
pregunta user3306314

1 respuesta

1

No puedes hacer delay_ms (1000) con F_CPU tan alto,

el manual dice lo máximo que puede obtener a 12MHz es un poco más bajo 22ms

Quizás haga esto en lugar de _delay_ms(1000)

for(int x=0;x<50;++x) _delay_ms(20);
    
respondido por el Jasen

Lea otras preguntas en las etiquetas