Forum: Mikrocontroller und Digitale Elektronik Endlosschleife


von Frank (Gast)


Angehängte Dateien:

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

von dave (Gast)


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

von Klaus (Gast)


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

von Frank Jendraschek (Gast)


Lesenswert?

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

von ...HanneS... (Gast)


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

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.