Nein, du siehst das Blinken nur nicht, weil die Ein-Zeit 20000 (zwanzigtausend) mal länger ist, als die Aus-Zeit.Zitat von crabtack
F_CPU wird in delay.h benötigt, also muss das "#define F_CPU" vor das "#include <util/delay.h>".Zitat von crabtack
Also, ich bin eigentlich noch anfänger.
Heute habe ich es geschafft mein atmega 32 zu flashen.
Jetzt möchte ich erstmal ein lauflich bauen aber es will noch nicht ganz klappen.denn es ikommen 3 warnungen und die led leuchtet die ganze zei.
also ich will erstmal nur eine led zum blinken bringen.
also, so sieht meion code aus:
Und es kommen diese warnungen:Code:#include <util/delay.h> #include <avr/io.h> #define F_CPU 1000000 int main(void) { DDRB = 2; while(1) { PORTB = 0b00000010; _delay_ms(60); PORTB = 0b00000000; }; }
c:/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:85:3: warning: #warning "F_CPU not defined for <util/delay.h>"
../lauflicht.c:3:1: warning: "F_CPU" redefined
c:/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:86:1: warning: this is the location of the previous definition
Nein, du siehst das Blinken nur nicht, weil die Ein-Zeit 20000 (zwanzigtausend) mal länger ist, als die Aus-Zeit.Zitat von crabtack
F_CPU wird in delay.h benötigt, also muss das "#define F_CPU" vor das "#include <util/delay.h>".Zitat von crabtack
MfG
Stefan
[quote="sternst"]Hmmmm, wieder was gelernt. Ich hatte den Fehler nie (hab meine eigene "wait_ms"). ABER ich hätte das auch so gemacht, weil ich dachte, dass der Preprozessor das schon "richtet". Wieder was gelernt !Zitat von crabtack
Frage: seit einigen Monaten habe ich den Prozessortakt im AVRStudio in die "Current Configuration Options" geschrieben - auf Rat aus dem Forum hin. Wann werden denn die abgefragt? Das wäre dann doch sicher auch hier eine richtige Möglichkeit?
Ciao sagt der JoeamBerg
Der Präprozessor richtet sowas meistens auch: man _kann_ viele Warnungen durchaus ignorieren, aber eben nicht alle. Und ehe du dann ewig suchst...ich hab mir inzwischen angewöhnt, _jede_ Warnung erst zu beheben, ehe ich was flashe.
Im allgemeinen ergibt es dann nur "unlogisches" Programmverhalten. Dann finde mal das Problem.![]()
Ja. F_CPU im Makefile zu definieren (und das ist letztlich das, was passiert, wenn du es in den "Configuration Options" einstellst), ist sogar der beste Weg. Aber der OP hat ja nicht gesagt, was er benutzt und wie er compiliert.Zitat von oberallgeier
[oberlehrer]
Jedes mal, wenn ich "Preprozessor" sehe, bekomme ich die Krätze. Ich habe ganz und gar nichts gegen Anglizismen, aber Englisch-Deutsch-Kombinationen innerhalb eines Wortes müssen es ja nun wirklich nicht unbedingt sein.
Es heißt entweder "Präprozessor" (deutsch) oder "Preprocessor" (englisch).
[/oberlehrer]
MfG
Stefan
Erstmal danke Stefan, und dannAu Sch...e - genau das wollte ich nicht schreiben. Freud´sches Fehlverhalten - oder Altersdebilität. Egal - jedenfalls isses dämlich. Tut mir wirklich leid.Zitat von sternst
Wobei manche Denglish-Konstrukte so daneben sind, dass sie schon fast ihren Charme haben: Backshop zum Beispiel oder so *ggg*.
Ciao sagt der JoeamBerg
Danke, ich habe es geschafft die led zum leuchrten zu brigen.
Und auch ein lauflicht aufgebaut.
http://www.sendspace.com/file/5jjn3m
(Ich habe leider keinen youtube account)
Jetzt werde ich dem lauflicht noch ein paar extras geben wioe einen schalter und einen trimmer mit dem man die abstäde zwichen dem blinken einstellen kann.
Dannn kommt eine großbestellung bei pollin und ich bau endlich einen malrobo.^^
Wie kann man eigentlich amn einem pin erkennen, wieviel spannung da ist und das atmega die zahl als variable speichern lassen?
#include <util/delay.h>
#include <avr/io.h>
#define F_CPU 1000000
int main(void)
{
DDRB = 2;
while(1)
{
PORTB = 0b00000010;
_delay_ms(60);
PORTB = 0b00000000;
};
}
Ist dieses Semikolon überhaupt erlaubt? Und muss es nicht #define F_CPU 1000000ul heißen?
Erlaubt ist das semikiolon aber nicht notwendig.
ka, wieso ich es hingemacht habe.
Ich gkaube, dass mit dem ukl war nur früher so.
Habe jetzt auch ein video auf youtube
http://www.youtube.com/watch?v=XTE_r4x7YcY
Lesezeichen