Forum: Mikrocontroller und Digitale Elektronik Taster LED Änfägerfrage


von TIm (Gast)


Lesenswert?

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

von TIm (Gast)


Lesenswert?

..eintasten kann solls heißen !

von Martin K. (maart)


Lesenswert?

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....

von TIm (Gast)


Lesenswert?

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

von Niels H. (monarch35)


Lesenswert?

Wie sollte man ihm auch code geben? Er hat ja nichtmal eine Sprache 
spezifiziert :)

von TIm (Gast)


Lesenswert?

sorry, programmiere mit assembler und nutze das stk 500 mit dem uc 
amega8515l


gruß

tim

von Niels H. (monarch35)


Lesenswert?

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.

von Martin K. (maart)


Lesenswert?

>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.

von TIm (Gast)


Lesenswert?

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

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Assemblerprogramme sind unles- und unwartbar. Nicht mehr zeitgemaesz.

von Niels H. (monarch35)


Lesenswert?

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.

von TIm (Gast)


Lesenswert?

und nun ?

was sagen die weisen ?

auf c umsteigen, oder erstmal richtig assebler lernen und dann auf 
hochsprache umsteigen ?



mfg

von AVRFan (Gast)


Lesenswert?

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.

von Niels H. (monarch35)


Lesenswert?

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.

von TIm (Gast)


Lesenswert?

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

von Stefan T. (_distance_07)


Lesenswert?

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

von jack (Gast)


Lesenswert?

>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;-)

von Johannes M. (johnny-m)


Lesenswert?

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)...

von Stefan T. (_distance_07)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

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

von Christian Laber (Gast)


Lesenswert?

Ob C, Bascom, Pascal, Assembler ist egal...kasste alles mit dem STK500 
programmen. Es wird ja eh nur die Opcode-Datei (*.hex) übertragen.

von Stefan T. (_distance_07)


Lesenswert?

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

von Johannes M. (johnny-m)


Angehängte Dateien:

Lesenswert?

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;-)

von Stefan T. (_distance_07)


Lesenswert?

.. 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

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

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.

...

von Stefan T. (_distance_07)


Lesenswert?

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