Forum: Mikrocontroller und Digitale Elektronik warteschleife 8-Bit-Microkontroller


von A. R. (quicktechnick)


Lesenswert?

hallo leute. wie programmiert man eine warteschleife, die 300 Impulse 
lang wartet, für einen 8-Bit-Microkontroller (assembler)?

: Bearbeitet durch User
von Rolf M. (rmagnus)


Lesenswert?

Alexander Rolof schrieb:
> hallo leute. wie programmiert man eine warteschleife, die 300 Impulse
> lang wartet, für einen 8-Bit-Microkontroller (assembler)?

Das hängt vom Mikrocontroller ab und davon, was "Impulse" sind.

von Max H. (hartl192)


Lesenswert?

Alexander Rolof schrieb:
> hallo leute. wie programmiert man eine warteschleife, die 300
> Impulse
> lang wartet, für einen 8-Bit-Microkontroller (assembler)?
1
  movlw .99
2
  movwf delay_reg
3
  decfsz delay_reg,f
4
  goto $-1
5
  nop

von Mike A. (Gast)


Lesenswert?

Alexander Rolof schrieb:
> hallo leute. wie programmiert man eine warteschleife, die 300 Impulse
> lang wartet, für einen 8-Bit-Microkontroller (assembler)?

Man setzt einen Zähler auf 300, wartet auf eine steigende Flanke, wartet 
auf eine fallende Flanke, verringert den Zähler um eins und springt, 
falls der Zähler >0 ist, wieder zurück zum Warten auf die steigende 
Flanke.

Beim Rest kann dir leider bei deinen Angaben keiner helfen

von Jürgen S. (jurs)


Lesenswert?

Alexander Rolof schrieb:
> hallo leute. wie programmiert man eine warteschleife, die 300 Impulse
> lang wartet, für einen 8-Bit-Microkontroller (assembler)?

Ich kann kein Assembler, aber das dürfte genau so funktionieren wie in 
jeder anderen Programmiersprache auch:

- einen Zähler deklarieren und auf 0 setzen
- in einer Zählschleife 300 Impulse abzählen
- wenn Zähler bei 300 steht ==> fertig mit Warten

von Max H. (hartl192)


Lesenswert?

Max H. schrieb:
> movlw .99
>   movwf delay_reg
>   decfsz delay_reg,f
>   goto $-1
>   nop
Nachtrag:
1
  nop
sonst sind es nur 299

von A. R. (quicktechnick)


Lesenswert?

wie ist es damit?
m0: mov r0,#2
m2: mov r1,150
m1: djnz r1, m1
    djnz r0, m2
    ret

von Thomas E. (thomase)


Lesenswert?

A. R. schrieb:
> wie ist es damit?
> m0: mov r0,#2
> m2: mov r1,150
> m1: djnz r1, m1
>     djnz r0, m2
>     ret

Das sieht doch fast gut aus. Vor die '150' gehört noch ein'#'.
Und geb deinen Labels klangvollere Namen. Bei diesen 
Buchstaben-Zahlen-Kürzeln weisst du doch in ein paar Tagen nicht mehr, 
wozu das gut sein soll.

Wobei es sich hier natürlich um ein reines Delay handelt. Damit tritt 
dein Controller nur auf der Stelle und macht nichts anderes. Du solltest 
dich mit Thema "Timer und Zähler" auseinandersetzen.

Die Angabe, dass es sich um einen 8051 handelt, gehört auch in deinen 
Ausgangspost. Denn es gibt mehr als nur einen 8-Bit-Controller.

mfg.

: Bearbeitet durch User
von Ratgeber (Gast)


Lesenswert?

c-hater schrieb im Beitrag #3981130:
> ....wenn dadurch die zarte
> Seele von irgendsoeinem kleinen unwissenden Scheißer aus dem
> Gleichgewicht geraten könnte...

Aus Du findest noch Deinen Meister....

Gestern erst habe ich es hier ausgeführt:
Beitrag "Re: Freundlichkeit von Forumsnutzern"

Wisch Dir den Schaum vom Mund und pfeif Dir einen Blutdruck-Senker 
ein...

von A. R. (quicktechnick)


Lesenswert?

Vielen Dank für die Hinweise...

von Günter Lenz (Gast)


Lesenswert?

A. R. schrieb:
>die 300 Impulse
>lang wartet,

Wo kommen die 300 Impulse her?
Werden die dem Mikrocontroller von Außen über
eine Portleitung zugefürt, oder sollen die
vom Systemtakt abgeleitet werden?

von A. R. (quicktechnick)


Lesenswert?

A. R. schrieb:
> Vielen Dank für die Hinweise...

...sorry war nicht negativ gemeint...hab meine Antwort bereits erhalten. 
Vielen Dank an Thomas Eckmann.

von Mike A. (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> Damit tritt dein Controller nur auf der Stelle und macht nichts anderes.

Wie würdest du eine programmierte Warteschleife, nach der ausdrücklich 
gefragt wurde, sonst lösen.

A. R. schrieb:
> wie programmiert man eine warteschleife

Bei Einsatz eines Timer/Zählers würde die Hardware die Warterei und die 
Pulszählerei erledigen. Wo bliebe da die geforderte Warteschleife? Gut, 
man könnte in der Schleife statt auf die Impulse einfach auf den 
erlösenden Interrupt waren, aber wäre das eine Warteschleife im Sinne 
der Aufgabenstellung?

von Rolf M. (rmagnus)


Lesenswert?

c-hater schrieb im Beitrag #3981130:
> npn schrieb:
>
>> An deinen Umgangsformen müßtest du vielleicht noch ein klein wenig
>> feilen. Manch einer könnte vielleicht auf den Gedanken kommen, daß du
>> ein arrogantes Ekelpaket bist, der im Tiefflug durch die Kinderstube
>> geflogen ist und der auch später keinerlei Erziehung genossen hat.
>
> Du solltest vielleicht etwas mehr in Richtung bürgerlicher Freiheiten
> denken.

Manch einer mag persönliche Beleidigungen als Teil der Redefreiheit 
sehen, ich sehe sie als unflätig und unnötig an.
Der wichtigste Grundsatz für mich, was Umgangsformen in Foren betrifft, 
ist, mit den Leuten dort so zu sprechen, wie man es auch tun würde, wenn 
sie einem direkt gegenüber säßen.

> Ja klar, das kann zu Komplikationen führen, wenn sich der kleine
> Scheißer entgegen der objektiven faktischen Sachlage persönlich verletzt
> fühlt.

Du kennst den Menschen nicht, fühlst aber aus irgendeinem Grund die 
Notwendigkeit, ihn als "kleinen Scheißer" zu beschimpfen. Mich würde 
wirklich interessieren, ob du bei persönlicher Konversation auch zu so 
unverschämter Ausdrucksweise neigst oder ob du der Meinung bist, daß nur 
im Internet ein höflicher und respektvoller Umgang nicht nötig ist.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rolf Magnus schrieb:
> Manch einer mag persönliche Beleidigungen als Teil der Redefreiheit
> sehen, ich sehe sie als unflätig und unnötig an.
Und sie machen nur unnötig Arbeit und vergeuden wertvolle Zeit.

von Volker S. (vloki)


Lesenswert?

Beitrag #3981159 wurde von einem Moderator gelöscht.
??? echt jetzt, dann bin ich ja richtig böse ... ???

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Der Beitrag hat nichts zur Sache beigetragen.

von Volker S. (vloki)


Lesenswert?

Lothar Miller schrieb:
> Der Beitrag hat nichts zur Sache beigetragen.

Na ja, wenig ausser vielleicht dem Hinwies an den TS dass die Frage 
nicht gut gestellt war. Das steht ja zum Glück immer noch oft genug da 
;-)
Der erste Teil wurde durch das Löschen des Beitrags auf den er sich 
bezog wirklich nutzlos.

Ist jetzt zwar weiter off Topic, aber weil es mir hier gerade bei deiner 
Antwort wieder auffält.
Gibt es eine Möglichkeit mehrere Wörter oder ganze Abschnitte kursiv 
oder fett zu formatieren ?

von Volker S. (vloki)


Lesenswert?

Rolf Magnus schrieb:
...

Trägt eigentlich noch weniger zur Sache bei als mein Beitrag, aber ich 
findees trotzdem gut, wenn einer klarstellt, dass es durchaus auch Leute 
hier gibt, die solche Pöbeleien weitaus schlimmer finden als blöd 
gestellte Fragen!

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Volker SchK schrieb:
> Gibt es eine Möglichkeit mehrere Wörter oder ganze Abschnitte kursiv
> oder fett zu formatieren ?
Naja, mehrere Worte sind noch einfach, einfach den Slash vorher und 
nachher anbringen. Aber die Formatierung überlebt leider den 
Zeilenumbruch nicht...  :-/

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.