Hallo,
wenn ich folgenden Code schreibe ist die delay funktion nicht 200ms lang
sondern viel schenller, an was kann das liegen?
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000UL /* Quarz mit 16 Mhz */
#include <avr/delay.h> /* definiert _delay_ms()
int main (void)
{
int i;
CLKPR = 0x80; //Change System CLK-Prescaler to 1
CLKPR = 0x00; //Change System CLK-Prescaler to 1
PORTE = 0x00;
DDRE = 0xE0;
while (1)
{
PORTE = 0xff;
_delay_ms(200);
PORTE = 0x00;
_delay_ms(200);
}
//never goes here!
return 0;
}
Hallo, aus der avrlibc Dokumentation: void _delay_ms ( double __ms ) Perform a delay of __ms milliseconds, using _delay_loop_2(). The macro F_CPU is supposed to be defined to a constant defining the CPU clock frequency (in Hertz). The maximal possible delay is 262.14 ms / F_CPU in MHz. CU Timo
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.