hallo, ich möchte gerne mit einem taster eine led einschalten, im forum steht nur wie man die led eintasten, jedoch beim lösen des tastes geht sie wieder aus. oder, bei der anderen lösung bleibt sie dauerhaft an. ich will jedoch die led auf 1 setzen und mit dem gleiche taster wieder löschen bzw. ausschalten ! wäre nett, wenn einer von euch mir nen kurzes code beispiel oder einen hinweis geben könnte. desweiteren, wenn ich das geschaft habe, möchte ich "led 1 ist an" am lcd ausgeben. wie ich den lcd ansteuere weiß ich, nur wie mache ich den vermerk o. interupt ? der über den zustand der led 1 bestimmt wird. tim
Code kann ich dir nicht geben, lernt man ja auch nicht so viel dabei ;-) Was muss dein Programm machen? Es muss sich "merken", ob die LED an oder aus ist. Jetzt drückst du deinen Taster: (Achtung, Stichwort: Entprellen) Das Programm prüft jetzt, ob die LED an oder aus ist und schaltet sie entweder ein oder aus. Solange die Taste noch gedrückt ist wird keine neuer Schaltvorgang ausgelöst, erst nachdem sie losgelassen worden ist und wieder neu gedrückt wird. Die Sache mit dem LC-Display heben wir uns für später auf....
nudn gut, ich werd mir dann erstmal das kapitel zum entprellen reinpfeifen... wenn jemand noch anregungen oder hilfestellungen hat, imme rher damit ! schönen abend allen tim
Wie sollte man ihm auch code geben? Er hat ja nichtmal eine Sprache spezifiziert :)
sorry, programmiere mit assembler und nutze das stk 500 mit dem uc amega8515l gruß tim
TIm wrote: > sorry, programmiere mit assembler und nutze das stk 500 mit dem uc > amega8515l Anfänger und Assembler...? also ich würde jedem Anfänger, der noch nie etwas grösseres als ein "Hello World" geschrieben hat, immer wieder Basic oder zumindest C empfehlen. Assembler kannst du nehmen, wenn du weisst, worauf es ankommt. Aber zum Einstieg finde ich Assembler deutlich ungeeignet.
>Aber zum Einstieg finde ich Assembler deutlich ungeeignet. Grenzwertig! Ich habe damals mit einem PIC16F84 und Assembler angefangen. Es war sicherlich nicht ganz unproblematisch, da es ja so schöne Sachen wie "Banking" gibt. Jetzt benutze ich WinAVR, man bekommt schon eine Menge abgenommen. ABER: wenn ich im Debug-Modus das Disassembler-Listing vorgesetzt bekomme, fluche ich schon öfters mal und nehme mir immer wieder neu vor, endlich mal die Assembler-Befehle zu lernen.
warum, mit assebler, - so hab ich das gefühl-, komm eich ganz gut in die materie rein ! ich bin erst seid etwas über einer woche dabei und finde assebler, - soweit ich die sprache erlebe-, sehr angehem. und jetzt wieder auf c umzusteigen, wobei ich keinerlei programmiererfahrungen habe, naja ich weiß nicht ob mich das weiter bringt. was menst du wäre von vorteil ? die übersichtlichkeit ? gruß tim
Michael G. wrote:
> Assemblerprogramme sind unles- und unwartbar. Nicht mehr zeitgemaesz.
Diese Art von Diskussion wollte ich eigentlich nicht lostreten. Ich
würde gerne darum bitten, die Diskussion nicht mehr auf diesem Niveau
fortzuführen.
Danke.
und nun ? was sagen die weisen ? auf c umsteigen, oder erstmal richtig assebler lernen und dann auf hochsprache umsteigen ? mfg
Wenn Du mit Assembler gut klarkommst, dann bleib dabei! Für andere Sprachen kannst Du Dich später immer noch interessieren. Assembler hat den nicht zu unterschätzenden Vorteil, dass Du Deinen Controller richtig gut kennenlernst. Auch C-Programmierer müssen übrigens hin und wieder auf Assembler zurückgreifen, nämlich für zeitkritische Sachen, oder besondere Problemfälle.
TIm wrote: > warum, mit assebler, - so hab ich das gefühl-, komm eich ganz gut in die > materie rein ! War ja auch nur ein Vorschlag. Aber ich bin immernoch der Meinung, das du deinem Ziel in Basic deutlich schneller näher kommen würdest. > ich bin erst seid etwas über einer woche dabei und finde assebler, - > soweit ich die sprache erlebe-, sehr angehem. Assembler ist eigentlich nur eine Methode, den Maschinencode, den der Controller verarbeitet, in ein einigermaßen für Menschen erfassbares Format zu bringen. C geht wesentlich weiter. > was menst du wäre von vorteil ? C ist eine Abstraktionsebene höher. Beispielsweise musst dich nicht mehr um Einsprungspunkte oder Interrupttabellen kümmern. Auch verfügt die avrLibC über eine grosse Library an Funktionen, die stark fequentiert genutzt werden. In Assembler würdest du sie immer wieder neu programmieren müssen... Sicherlich ist es für den Entwickler nicht schlecht, Assembler zu kennen und zu können. Aber um einen Anfang zu finden fände ich Basic oder C wesentlich besser.
ja ich weiß nicht in wie weit ich meine auffasung richtig einschätze, das ich gut klar komme. hatte keinerlei informatik vorerfahrungen, bzw. keine vorerfahrungen im programmieren etc... wusste nichtmal was ein bit und was ein byte ist. und nun verstehe ich ales so einigermaßen, wenn ich es auch mehrmals durchlesen muss oder ein paar begriffe nachlesen muss... ich denke auch, dass ich assembler erstmla einigermaßen können sollte, bevor ich wieder umsteige ! grüße tim
Guten Abend, ich finde die Diskusion sehr interessant, da ich ebenfalls erst seit kurzer Zeit mit dabei bin. Und ich meinen Wissensstand mit dem von Tim etwa gleichsetzen würde. Aber wenn hier gesagt wird, dass C schneller zum Ziel führt, wäre es sehr effektiv für mich, da ich in ca. einem halben Jahr ein größeres Projekt vor habe, welches ich im Rahmen einer Abschlussprüfung vorstellen muss. Also meint Ihr in Assembler schaffe ich es ? Oder denkt ihr ein Einsteiger wäre mit C besser bedient. Es geht um die Ansteuerung eines Schrittmotors, eines Getriebemotors und einigen Endschaltern sowie eine Ausgabe auf einem LCD. MFG Stefan
>Also meint Ihr in Assembler schaffe ich es ? Oder denkt ihr ein >Einsteiger wäre mit C besser bedient. Ganz einfach: Mach einen Test. Schreib ein Programm für die Ansteuerung Deines Schrittmotors in Assembler. Wenn alles gut funktioniert, mach dasselbe in C. Dann entscheide Dich;-)
Für den Einsteiger, der etwas Zeit hat, sich in die Materie einzuarbeiten, ist Assembler für den Anfang empfehlenswert, weil man nur auf der Ebene die Hardware richtig kennenlernt und versteht, was da überhaupt passiert (was bei einem µC-System sehr wichtig sein kann). Wer sich mit Assembler befasst hat, versteht auch einige Macken von in Hochsprachen geschriebenen Programmen besser. Wenn man nicht so viel Zeit hat, ist es u.U. tatsächlich besser, direkt in der Hochsprache anzufangen, da Assembler-Programme größeren Umfangs schnell frustrierend unübersichtlich werden. C ist z.B. immer noch recht hardwarenah, so dass da zumindest nicht jeglicher Zusammenhang mit der "harten" Realität verloren geht. Assembler pauschal als "unzeitgemäß" zu verteufeln, ist aber ganz falsch, da jede Maschine auf der untersten Ebene mit Maschinenbefehlen arbeitet und man besonders bei Embedded-Systemen gerade diese unterste Ebene zumindest in Ansätzen kennen sollte, um effizient programmieren zu können (also das meiste aus dem System herausholen zu können)...
Danke für die zahlreichen Informationen.. Ich habe mir für C, sowohl auch für Assembler, Literatur besorgt, aber ich denke, dass ich beim Assebler bleiben werde. Da ich mich jetzt schon zwei Wochen damit auseinandersetze und wenigstens kleine Vortschritte mache. Wobei ich erwähnen muss, dass ich vor ca. 5 Woche das MCS51 Mikrocontroller Kochbuch" zu lesen angefangen habe jedoch nach einigen Experimenten mit PIC auf AVR ungestigen bin, da ich das STK500 bekommen habe und learning by doing für mich sehr wichtig ist. Deshalb will ich nicht jetzt schon wieder umsteigen. Außerdem hab ich hier eine ausgesprochen gute Adresse, wenn ich mal etwas nicht weiß. Großes Lob ans Forum MfG Stefan
Hi Niels wrote: >In Assembler würdest du sie immer wieder neu >programmieren müssen... Hör bitte auf Anfänger mit solchen Halbwahrheiten zu verunsichern. Und dann auch noch Basic empfehlen. Assemlercode ist genauso wiederverwendbar. Dazu müssen die Routinen nur in eigenen Dateien gespeichert werden. Mit einer einzigen 'include'-Zeile ist der Code verfügbar. Unlesbar ist der Code nur für die, die keine Ahnung haben. @Tim: Lass dich nicht irre machen. Ich habe schon solche Projekte, wie GPS-Empfänger mit Grafikdisplay und Kartendarstellung mit einem Atmega und Assembler realisiert. Da hätten wahrscheinlich etliche Hochsprachen-Protagonisten in ihrer Sprache schon Probleme. MfG Spess
Ob C, Bascom, Pascal, Assembler ist egal...kasste alles mit dem STK500 programmen. Es wird ja eh nur die Opcode-Datei (*.hex) übertragen.
apropo Schrittmotorsteuerung, kann mir jemand mal ne kurze Übersicht geben, wie die Steuerung auszusehen hat... Ich werd mich dann nochmal ausgiebig damit auseinander setzen, wenn ich die ganzen Grundlagen verstanden habe. Hab ne Motorsteuerung mit L297 l298 ... Denke mal, dass ich mit nem Timer ein Takt ausgeben muss und die entsprechenden enable, richtungs - Leitungen auf High setzen muss ! ?... Wie kann ich dann die Schrittanzahl festlegen ? Brauhc ich da nen zweiten Timer als Zähler ? MFG Stefan
Stefan T. wrote: > apropo Schrittmotorsteuerung, kann mir jemand mal ne kurze Übersicht > geben, wie die Steuerung auszusehen hat... > > Ich werd mich dann nochmal ausgiebig damit auseinander setzen, wenn ich > die ganzen Grundlagen verstanden habe. Zu den Grundlagen: siehe Anhang. Ist ein Auszug aus einer Versuchsanleitung für einen Laborversuch. > Hab ne Motorsteuerung mit L297 l298 ... Denke mal, dass ich mit nem > Timer ein Takt ausgeben muss und die entsprechenden enable, richtungs - > Leitungen auf High setzen muss ! ?... > > Wie kann ich dann die Schrittanzahl festlegen ? Brauhc ich da nen > zweiten Timer als Zähler ? Wieso nen zweiten Timer? Mit jedem Taktimpuls macht der Motor genau einen Schritt (Halb oder voll, je nachdem, was eingestellt ist). In dem o.g. Laborversuch wird auf den L297 übrigens verzichtet und der AVR gibt die Taktsignale direkt an den L298 aus (ein AVR macht das nebenbei...). Das Einzige, was man dann eben diskret machen muss, ist die Strombegrenzung (die in dem angehängten Dokument dargestellte Strombegrenzungsschaltung ist übrigens vom Prinzip her dieselbe, die auch im L297 drinsteckt). Aber wenn Du den L297 schon fest eingeplant hast und mit dem arbeiten willst, will ich Dich auch nicht davon abbringen;-)
.. Hab die Schaltung schon so komplett hier vorliegen, von daher wird es doch Softwaremäßig etwas geringer, wenn ich den L297 benutze, oder etwa nicht ? ... Also kann ich dne Timer auf einen bestimmten Wert festlegen, und wenn er die .. sagen wir mal 1400 Takte abgegeben hat, stoppt er sich selbst ? Oder muss ich, wie ich zuerst vermutet habe, die Takte mit einem zweiten Timer in Form eines Zählers zählen und dann bei erreichtem Wert ein Iterrupt oder eien andere Funktion auslösen, welche den Taktausgang beendet... Vielleicht fehlen mir aber jetzt noch die Grundlagen ! Werde mir mal deinen Anhang durchsehen ! MfG Stefan
Ist ja nett, was hier so über ASM geschrieben wird... Stefan, schau Dir den Anhang mal an, der könnte Dir vermutlich beim Verständnis einiger Grundlagen helfen. Nein, Du musst es nicht so machen, wie da dargestellt, Du kannst (uns sollst) den Code auch nicht unbesehen und unverstanden"benutzen", Du kannst Dir aber nach dessen Analyse Deinen eigenen Code schreiben und vielleicht diese oder jene Idee übernehmen. Viel Spaß damit. ...
Vielen Dank, Hannes Wenn ich soweit bin, werde ich deinen Code mal gründlcih analysieren und dann daraus sicher entsprechede Fortschritte ziehen. MfG Stefan
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.