Forum: Mikrocontroller und Digitale Elektronik Erfahrungen mit CodeVisionAVR


von Lutz Müller (Gast)


Lesenswert?

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

von Dominik (Gast)


Lesenswert?

Ich habe bald ein Ähnliches Projekt vor. Ich denke die Temperatur kann
man am besten per Timerinterrupt in bestimmten Intervallen abfragen.

Gruß, Dominik

von Peter (Gast)


Lesenswert?

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.

von Lutz Müller (Gast)


Lesenswert?

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

von Elmar Müller (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.