für ein ATMEGA88 habe ich ein Problem mit der delay function gefunden.Wenn ich die Funktion auf 1000ms ,8 sec statt 1s dauert !!!!!.Die LED blinkt ,sondern 8s statt 1s . --------- #include <avr/io.h> #include <util/delay.h> #define F_CPU 8000000UL int main(void) { DDRC |=(1<<PC0); while (1) { PORTC |=(1<<PC0); _delay_ms(1000); PORTC &= ~(1<<PC0); _delay_ms(1000); } }
Vielleicht einfach
1 | #define F_CPU 8000000UL
|
auf die richtige Frequenz setzen... Oder die Fuse, wie Du willst! Gruss Chregu
F_CPU muss vor dem Include von delay.h definiert werden. Das wird dir auch in einer von dir ignorierten Warnung mitgeteilt.
Sebastian R. schrieb: > Bitte einmal die CKDIV8 Fuse deaktivieren, danke. Danke für Ihre Antwort.wie mache ich das ! ich bin neu in Programmierung
Christian M. schrieb: > Vielleicht einfach > >
1 | > #define F_CPU 8000000UL |
2 | >
|
> > auf die richtige Frequenz setzen... Oder die Fuse, wie Du willst! > > Gruss Chregu Danke für Ihre Antwort .Ich denke muss ich die Fuse einstellen aber weiss ich nicht wie !!
Chris C. schrieb: > Ich denke muss ich die Fuse einstellen aber > weiss ich nicht wie !! AtmelStudio: Tools -> Device Programming Tool und Device auswählen Fuses ändern. Oder mit AVR Dude. https://www.mikrocontroller.net/articles/AVR_Fuses
:
Bearbeitet durch User
Sebastian R. schrieb: > Bitte einmal die CKDIV8 Fuse deaktivieren, danke. Sie haben Recht .Es hat sich geklappt
Chris C. schrieb: > für ein ATMEGA88 habe ich ein Problem mit der delay function > gefunden.Wenn ich die Funktion auf 1000ms ,8 sec statt 1s dauert > !!!!!.Die LED blinkt ,sondern 8s statt 1s . Nicht soviel Red Bull saufen, dann klapp's vielleicht auch mit den Nerven und vernünftigen Satzbau.
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.