Das Problem ist, das der Compiler dem delay einen Wert beim compilieren zuweisen muss. Das wird bei diesem Programm mit einer Variablen gemacht.
Die offizielle Lösung ist, Timer benutzen.
hallo, ja ich kann die erklärung lesen, leider hat von einer sekunde auf die anderen jetz das ISP vom AVR den dienst quittiert, ich schmeiss das ding echt gleich an die wand, sorry
also habe ich das richtig verstanden, im rncontrol.h wird die funktion waitms() definiert, und überall benutzt ausser bei der tonerzeugung, wo _delay_ms() benutzt wird (warum?), und diese funktion geht nur wenn die compileroptimierung angeschaltet ist (ist sie bei mir aber...) und einen konstanten wert bekommt (der wert is doch konstant?) und sonst funktioniert das nicht (früher mit winavr hats aber funktioniert?) ?
und was is die offizielle lösung zu diesem problem? kein _delay_ms() benutzen? warum wird es an der stelle eigentlich benutzt und nich waitms()?
Das Problem ist, das der Compiler dem delay einen Wert beim compilieren zuweisen muss. Das wird bei diesem Programm mit einer Variablen gemacht.
Die offizielle Lösung ist, Timer benutzen.
Ich hab eine einfachere Idee (in diesem Beispiel wird 1,3s gewartet):Die offizielle Lösung ist, Timer benutzen.
EDIT:Code:for(int i = 1300; i > 0; i--) _delay_ms(1);
Hab ich vergessen, 1300 kannst du natürlich durch deine Variable ersetzen.
also ich raffe nix mehr. manche funktionen des beispielprogramms scheinen normal zu laufen wie z.b. das led-lauflicht. der rest is total verhunzt. warum das früher ging versthe ich auch noch weniger..is mir leider alles zu hoch
Dann empfehle ich dir ein komplett neues Programm zu schreiben (das hättest du schon viel früher machen können) und erst mal die Wartefunktionen auszuprobieren.
Lesezeichen