Hallo, vor 3 Monaten hat ein Versuch mit der Brechstange, WinAVR in 5 Minuten zu begreifen, logischerweise nicht funktioniert. Nach dem Urlaub will ich mich nun wieder gaaanz langsam an die AVR´s ranwagen, wobei sich wieder die Frage nach den "richtigen" Tools stellt, da ich nicht 5 mal mit irgendwas anfangen und dann wieder abbrechen will. Auch das alte Problem, 50 % der Zeit mit den Tools selbst zu verbringen, spielt da natürlich rein. Nun habe ich per Google CodeVisionAVR gefunden, wo eine größenlimitierte kostenlose Version (ähnlich wie BASCOM?) angeboten wird. Hat jemand damit schon Erfahrungen? Noch eine andere Frage: Ich will als erstes "Projekt" eine Saunasteuerung basteln. Wenn ich nun einen Menüpunkt Marke "Wenn Taste x gedrückt, Untermenü y aufrufen" einbaue, dann läuft ja die Regelung nicht mehr (z.B. "prüfe alle 30 Sekunden Temperatur und schalte anhand der eingelesenen Werte EIN oder AUS"). Muß ich nun Multitasking machen, um das Problem zu lösen? => Dann wird#s wohl doch nicht mein erstes "Projekt". Danke und Gruß Lutz
Ich habe bald ein Ähnliches Projekt vor. Ich denke die Temperatur kann man am besten per Timerinterrupt in bestimmten Intervallen abfragen. Gruß, Dominik
Der Compiler CodeVisionAVR ist ganz gut. Allerdings solltest du wissen was der AVR macht bzw. machen soll. Assemblerkenntnisse sind hier sehr von Vorteil, zumal auch hier im Compiler immer wieder kleinere Assembler-Einlagen benötigt werden. Für den Einstieg finde ich das recht schwer wenn man ansonsten gar keine Ahnung von Mikrocontrollern hat. Assembler wäre hier besser. Saunasteuerung kann auch nicht allzu kompliziert sein (?), von daher empfehle ich zum lernen und einsteigen eher mal Assembler. Zum Menü: Taster lösen Interrupt aus und der AVR arbeitet den entsprechenden Code ab. Temperatur alle paar Sekunden messen sollte reichen. Timerinterrupt ist hier okay. Die restliche Zeit dann irgendeinen Sleep-Mode verwenden. Spart Strom.Immer gut.
Hallo Peter, Assembler habe ich mir in der Theorie (welche ja die Praxis leider nie ersetzen kann) schon angeschaut. Bin ich auch gut mit Zurecht gekommen, bis zu dem Zeitpunkt, als das Thema "Rechnen in Assembler" kam, da hatte ich dann gar keine Lust mehr auf Assembler. Das war mir dann doch zu aufwändig, wenn es in C doch so viel einfacher ist, 7,3 x 8,4 zu rechnen. Aber grundsätzlich wollte ich auch in C möglichst viele Bitoperationen wie in Assembler machen, also nicht "wdt_enable(500MS)" (oder so ähnlich), sondern lieber die ganzen Bits "zu fuß" setzen. Wenn es Assembler mit "Inline-C" geben würde, wäre das wahrscheinlich meine Wahl. Meine Frage im ersten Posting zielte aber eher darauf ab: Ich habe ja irgendeine Schleife, in der die Regelung läuft. Nun will ich in einem Unterprogramm aber eine neue Zieltemperatur eingeben und muß deshalb die Schleife verlassen. Bei der Wartezeit, bis die neue Zieltemperatur eingegeben ist, findet also keine Regelung mehr statt. Dort liegt mein Problem. Gruß Lutz
Hallo Lutz, ich arbeite schon etwa länger mit dem CodeVision und das klappt recht gut. Mit diesem Compiler kannst du auch gezielt Bit´s setzen oder löschen. Wenn es sein muss geht auch Assembler !! Per Interrupt ob Timer oder Bit I/O kannst du auch deine Regelschleife kurz unterbrechen um einen neuen Wert zu holen. Du mußt halt nur dafür sorgen, daß die Interrupt-Routine nicht ewig auf Eingaben wartet sonst geht natürlich deine Regelung nicht mehr. Gruß Elmar
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.