• 21.08.2025, 11:43
  • S’inscrire
  • Connexion
  • Vous n’êtes pas connecté.

 

BenniG

Full Member

Frage zum Motorola 68HC11

mercredi 25 juin 2003, 14:44

Hi
hat zwar (noch) nix mit wasserkühlung zu tun, aber wir nehmen in der fh grad den Motorola 68HC11 durch und damit kann man ja schon einiges machen, freu mich schon auf die labor-übungen, meine frage ist aber nun, ob sich einer mit der befehlsliste auskennt, vor allem würde mich interessieren, ob wie der befehl BRCLR vom Syntax her ist.
Unser Prof schreibt einmal

Code source

1
MARKE BRCLR TFLG1,X,#$80,MARKE

oder manchmal auch

Code source

1
MARKE BRCLR TFLG1,X $80 MARKE

leider seh ich den prof vor unserer klausur nächste woche nichtmehr, mich würde mal interessieren, was denn nu richtig ist..
Der Befehl soll so lange laufen bis der Timer die Zeit im Timer-Output-Compare1 erreicht hat und das höstwertigste bit von TFLG1 (also das OC1F) gesetzt wird..
Ich frage mich erstens, ob die Kommas richtig sind und vor allem, ob die Bitmaske mit Immediate adressiert werden muss, oder ob BRCLR da automatisch ne Konstante erwartet und das Immediate unnötig, bzw falsch wäre..
Hoffe es hat vielleicht einer nen Handbuch zu der kiste daheim und kann mit helfen.
Vielen Dank schonmal
Benni

peterchenmond44

Junior Member

Re: Frage zum Motorola 68HC11

jeudi 26 juin 2003, 23:03

hmmm

Auf die schnelle bekomme ich das auch nicht mehr hin. Ist ja auch "schon" ein halbes Jahr her, bei mir. Deshalb schlage ich Dir vor die Befehlsliste und so ein Büchlein, welches unser Prof. geschrieben hatte, per Mail zu schicken.
Da findeste dann Die Befehlsliste und die Interrupttabelle ausserdem erklärt der in dem Buch, wie man den Timer ausliest. Allerdings wird die Mail dann 10 MB gross.  :o

edit:

Naja nur das Buch wären 1,6 MB!
der Rest sind noch Referenz etc. von Motorola (vielleicht nicht so wichtig, für den Anfang)

nochmal edit:

Habe noch nen PowerPointPresentation über die Programmierung vom HC11, von meinem Prof. gefunden, sehr interessant. Hat aber nochmal 3,5 MB. Also gesamt habe ich rund 15MB Infos.

BenniG

Full Member

Re: Frage zum Motorola 68HC11

jeudi 26 juin 2003, 23:21

HI
Endlich meldet sich mal einer..
Mir gehts eigentlich nur um den Syntax von BRCLR, wie das funktioniert und so weiß ich ja, wir haben ja auch schon mehrere beispiele dazu gehabt, aber der BRCLR ist halt komisch.. Müsst mal wissen wie der jetzt wirklich ist, kannst du da mal gucken, wie ihr das gemacht habt..
Danke schonmal
Benni

peterchenmond44

Junior Member

Re: Frage zum Motorola 68HC11

vendredi 27 juin 2003, 00:06

    ORG $B600     ; folgendes Programm ab der Adresse $B600
edit: hier fehlt noch alles

BenniG

Full Member

Re: Frage zum Motorola 68HC11

vendredi 27 juin 2003, 00:19

@peterchenmond44
fehlt da nicht noch was? ;-)
mindestens mal das "! End" ;-)
oder spinnt mein explorer?

peterchenmond44

Junior Member

Re: Frage zum Motorola 68HC11

vendredi 27 juin 2003, 00:35

FUCKKK

ich habe gerade noch ein riesen Listing geschrieben, aber durch Bedienfehler alles glöscht.

AHHHHHHHH

peterchenmond44

Junior Member

Re: Frage zum Motorola 68HC11

vendredi 27 juin 2003, 00:49

hier nochmal ne Kurzform:

.
.
.
      LDX     #$1000       ; initialisiere das Register X mit $1000
.
.
.
HP  BRCLR $23,X,$40,HP ;teste OC2-Flag auf high und
                                 ;verzweige sollange das OC2-Flag
                                ;low ist zur Adresse mit der Marke HP
     LDAA   #$40
     STAA   $1023         ;lösche das OC2 Flag im TFLG1-
                                ;Register
.
.

bei BRCLR gibt $23,X an, dass er die Adresse $1023, welche indirekt adressiert ist, zu untersuchen, und wenn die Maske $40 nicht passt auf HP verzeigen. So weit ich das in der Befehlsreferenz erkennen kann, benötigt der BRCLR-Befehl beim Operanden eine indirekte Adressierung bei grösser 8bit.
8bit Adressen könnten noch direkt adressiert werden.

Hast Du keine Befehlsreferenz??? Wäre echt nützlich, weil da auch steht, was mit den Flags passiert und welcher Opcode ausgeführt wird, was wichtig für Programmierung von Interrupt ist.

PS: Hatte keine Lust nochmal das ganze Listing zu schreiben.
    Wenn du es haben möchtest schicke ich dir die Präsentation, da ist das drinn gewesen in einem Bsp zum erstellen einer Impulsfolge mittels Polling. Interrupts wäre elleganter, aber erstmal unwichtig für.   ::)

Ich hoffe ich erzähle keinen Mist.
Keine Anwendung des Wissen -> führt zum Vergessen !!(schade eigentlich)

BenniG

Full Member

Re: Frage zum Motorola 68HC11

vendredi 27 juin 2003, 02:24

Hi, danke..
Ich hab ja ne befehlsliste und das das ganze über indexed läuft, weil BRCLR sonst nur direct also 8bit-operanden unterstützt hatte ich schon rausgefunden, mit waren nur die kommas unklar, weil wir nen beispiel bekommen haben wo nur das komma zwischen dem TFLG1 und dem X war, siehe erstes post.. die anderen waren ohne kommas und ohne #, das war mir etwas unklar..
aber wenn ihr das auch alles mit komma getrennt habt und mit immediate die maske adressiert habt, dann wird das wohl so sein.. das beispiel was unser prof uns gegeben hatte war ein output-listing von irgendeinem assembler, evtl macht der nur die ausgabe in dem listing ohne komma.. warum auch immer..
aber ich werd dann in der klausur kommas schreiben und auch das #-zeichen..
Vielen Dank
Hoffe mal ich bekomm so ne 2 in der klausur, wär net schlecht..
Oki, gute nacht und nochmals vielen Dank

peterchenmond44

Junior Member

Re: Frage zum Motorola 68HC11

vendredi 27 juin 2003, 08:49

Was mir im Bettchen noch eingefallen ist:
Wir haben ja:

BRCLR <dir-adr>,<bitmask>,<label>    oder
BRCLR <offset>,X,<bitmask>,<label>

Manche Assembler erwarten aber:

BRCLR <bitmask>,<dir-adr>,<label>    oder
BRCLR <bitmask>,<offset>,X,<label>

machen erkennen das auch automatisch, welche Reihenfolge verwendet wurde. Jedenfalls denke ich mich noch schwach daran zu erinnern.

Warum die Maske ohne # angegeben wird hat mich auch immer gewundert. ??? Na irgendwie steht in der Liste für Maske mm und das Bedeuted 8-Bit Mask (Set Bits to be Affected). Der weiß sicher selber, dass das nen "Zahlwert" ist und braucht kein #.
Oder verstehe ich Dich falsch?

BenniG

Full Member

Re: Frage zum Motorola 68HC11

vendredi 27 juin 2003, 11:56

Ja,Nee, Verstehst mich schon richtig, das mit dem # wundert mich auch total, weil der befehl ja recht starr wäre, wenn man nur eine konstante als bitmaske nehmen könnte, es wäre ja auch denkbar, dass man vorher ne bitmaske in den ram legt und dann z.B. über ein unterprogramm, dass man oft benutzt, über BRCLR diese Bitmaske abfragen will, dazu bräuchte man halt für die bitmaske nochmal mindestens direct als adressierung.. Damits klarer wird was ich mein:

[tt]
.......... LDAA #$80
.......... STAA $0000
.......... JSR PRUEF
.......... LDAA #$C0
.......... STAA $0000
.......... JSR PRUEF
.......... ...
.......... ...
PRUEF..... LDX #$1000
MARKE..... BRCLR $23,X,$0000,MARKE
.......... RTS
[/tt]
(die .... sind nur weil ichs sonst nicht gescheit formatiert bekomme)
Ich weiß allerdings absolut nicht ob das geht..
Mist.. Hoffentlich kommt das nicht so in der Form irgendwie dran..

peterchenmond44

Junior Member

Re: Frage zum Motorola 68HC11

vendredi 27 juin 2003, 17:36

Joo! Wir verstehen uns. Das selbe habe ich mir auch gedacht.
Aber in der Befehlsliste steht halt, dass eine 8Bit-Maske erwartet wird. Wie man dann auf ne Speicherzelle verweisen kann ist halt die Frage. Aber so, wie du es schreibst, denke ich geht es nicht.

Vielleicht geht es, wenn man herausfindet in welcher Speicherzelle unser BRCLR-Befehl abgelegt wurde und in welcher speziel die 8-Bit-Maske liegt. So kann man diese dann im Programm mit gewünschten Werten überschreiben lassen. Allerdings muss man dann aufpassen, wenn man den Source-Code ändert, ändert sich auch die Speicherzellennumer.
(Ist aber nur ne Idee. So was haben wir dann auch nicht gemacht, war ja nur Einführung in HC11 für ein Semester)

PS: Viel Glück! ;)

BenniG

Full Member

Re: Frage zum Motorola 68HC11

vendredi 27 juin 2003, 21:38

Hmm, das mit der Speicherzelle wär ne möglichkeit, müsstest den BRCLR nur dann per programm erzeugen und in den ram legen, also quasi
LDD #$1F23 //1F für BRCLR indexed mit x und 23 wegen TFLG1
STD $0000
LDD #$80FC //80-bitmaske und FC, damit er den PC dann immerwieder um 4 Bit zurückstellt, sprich auf sich selbst springt..
STD $0002 noch ums an die richtige stelle zu schreiben, und es sollte laufen..
dann könntest du mit
JMP $0000
dahinspringen und jederzeit z.B. über
LDAA #$C0
STAA $0002

deine bitmaske ändern, ob das wirklich so gehen könnte, bzw vielleicht direkt so gemacht wird weiß ich nicht, kann sein, dass der Chip meckert weil der Program-Counter normalerweise nicht in den Ram zeigt..
Naja, nächstes Semester hab ich Labor, da kann man sowas ja mal testen..
Schade, hab keinen Assembler und keinen Simulator da, sonst könnt man das ja mal testen..
Okay, aber danke nochaml für die mühe das alles abzutippen etc..
Tschö
Benni

peterchenmond44

Junior Member

Re: Frage zum Motorola 68HC11

samedi 28 juin 2003, 10:31

Also so was in der Art meinte ich. Mit OP-Code und Sprungbefehlen kann man ja selber eine Zelle definieren, wo das abgestellt wird und dann wieder zurückspringen.
Oder so ::)

Wenn Du ne IDE für den HC11 suchst:

http://www.iar.com/

Dort gibts ne IDE und Assembler, welcher glaube bei der Demo auf 32K begrenzt ist. Damit kann man aber auch schon etwas anfangen.