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 | |
auf die richtige Frequenz setzen... Oder die Fuse, wie Du willst! Gruss Chregu
Bitte einmal die CKDIV8 Fuse deaktivieren, danke.
Gast
#6941941
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 | |
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
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.