www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Endlosschleife


Autor: Frank (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich habe ein Porgramm das die LEDS an Portb hoch dimmt.
Nur läuft das Programm nach dem hochdimmen in ner Endlosschleife
weiter. Wie kann man erreichen das er nach dem hochdimmen aus der
Schleife raus geht? Ich möchte dann das gleiche noch mal durchlaufen,
nur das er dann wieder runterdimmen soll also hin und her.
(Bin Assemblernewbie)
Danke
Gruss
Ferank

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grundregel 1 des Assemblers: Kommentieren!+Eindeutige Registernamen

Erzähl mal, wie das Ding fuktionieren sollte und kommentier den
Source...

Soweit hab ich das Programm nicht kapiert.


dave

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in der Endlosschleife bit abfragen! nach dimmen bit setzten! in der
schleife das erkennen und isr hochdimmen!
zb.: bei avr
T flag setzen  "set"
und dann abfragen! "brts" branch if T is set

Autor: Frank Jendraschek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke  ich werde es probieren
sorry das der Code nicht dokumentiert ist!
Gruss
Frank

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi...

Du kommentierst den Code ja nicht für UNS sondern für DICH. Daher wird
Code nicht nachträglich kommentiert, sondern direkt bei der Eingabe...

Du willst also (ohne Einwirkung von außen, wie Tastendruck etc) eine
LED hochdimmen und wieder runterdimmen und das immer wieder...

Du nutzt dazu keinen Timer, keinen Interrupt und keinen
Unterprogrammaufruf (denn dann müsstest du zwingend den Stackpointer
initialisieren!).

Die Routine zum Hochdimmen hast du (ich habe sie mangels Kommentare
nicht geprüft). Häng daran doch die gleiche Routine zum
Runterdimmen...

Oder besser: Ändere den Dimmwert nicht mit INC / DEC, sondern zähle mit
ADD (ein weiteres Register). Dieses weitere Register wird beim Start auf
1 gesetzt. Ist der Maxwert erreicht, setzt du es auf -1 (255), ist der
Minwert erreicht, dann wieder auf +1. Somit zählt deine PWM immer rauf
und runter... (bis jemand die Nase voll hat und dem Dingens den Strom
abschaltet...)

...HanneS...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.