Frage zu Assembler und Quellcode

Gast #343901
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
Angehängte Dateien:
Gast #343904
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...).
Gast #343905
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.