Forum: Mikrocontroller und Digitale Elektronik Frage zu Assembler und Quellcode


von Tony Meyer (Gast)


Angehängte Dateien:

Lesenswert?

Hi @ all,

ich bin Neuling im Bereich Mikrocontroller und habe mich über ein
Tutorial (leider Englisch) schon ein wenig in Assembler eingearbeitet.

Zu meinen Fragen:
1. Angenommen ich betreibe den PIC16F628 mit einem 4Mhz Quartz, wie
viele Wiederholungen muss ich einfügen, damit ich 1 Sekunde Wartezeit
habe.

DELAY

  movlw   9Fh    ;DEN WERT 159 IN
  movwf   C1    ;DEN COUNTER 1 SCHREIBEN

  movlw   9Fh    ;DEN WERT 159 IN
  movwf   C2    ;DEN COUNTER 2 SCHREIBEN

LOOP

  decfsz  C1,1    ;C1 UM 1 VERMINDERN UND
  goto  LOOP    ;AUF NULL PRUEFEN WENN
        ;|= 0 ZU LOOP GEHEN SONST:

  decfsz  C2,1    ;C2 UM 1 VERMINDERN UND
  goto  LOOP    ;AUF NULL PRUEFEN WENN
        ;|= 0 ZU LOOP GEHEN SONST:

  return      ;DELAY BEENDEN UND MIT PROG
        ;FORTFAHREN

2. Warum kann ich den Delay nicht auf FFh (255) setzen? Mir scheint,
als würde MPLAB die Buchstaben im Hex-Format nicht akzeptieren...

3. Ich habe einen Sourcecode geschrieben und würde mich freuen, wenn
Ihr mal nachschauen könnt, ob der Quellcode funktionsfähig ist.

Danke im voraus,

Grüße Tony

von Rahul (Gast)


Lesenswert?

Zu 2: Versuch's mal mit 0FF (Null FF). MPlap verste FFh u.U. als
Text...

von Tony Meyer (Gast)


Lesenswert?

Hi,

0FFh hat geklappt, danke.

Bleiben nurnoch die anderen beiden Fragen.

gruß Tony

von Rahul (Gast)


Lesenswert?

Zu 1: Allgemein macht man das so, dass man die Abarbeitungszeiten der
Befehle aus dem Datenblatt / Instruction Set herausguckt (steht in der
Regel bei der Befehlserklärung oder in einer Befehlsübersicht).
Daraus kann man dann eine Formel machen...
Guck dir einfach an, wie lange / wieviele Taktzyklen die innere
Schleife braucht.
Abfragen haben in der Regel vom Ergebnis abhängige Ausführungszeiten
(z.B. Bedingung erfüllt 2 Taktzyklen, Bedingung nicht erfüllt 3
Taktzyklen).
Das macht man mit der äusseren Schleife dann auch noch, und bekommt
dann die Dauer heraus. Etwas Algebra und ein glückliches Händchen, und
die gewünschte Zeit wird gewartet (per Timer ist sowas schöner...)
Auf den Source werde ich keinen Blick werfen, da ich keine Ahnung vom
PIC habe (ist nicht mein Lieblingscontroller...).

von Sebastian (Gast)


Lesenswert?

Kann dir jetzt zwar nicht direkt helfen, da ich von PICs noch weniger
Ahunung hab als von AVRs, aber schau dir mal die Seite hier an:

www.sprut.de

Auf der Seite findest du sehr viele Grundlagen über die PICs und deren
Programmierung. Auf Deutsch!

Sebastian

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.