Forum: Mikrocontroller und Digitale Elektronik Berechnung Assembler Zeitschleife


von Yan (Gast)


Lesenswert?

Hallo da ich in Assembler neu bin und mich nicht so gut auskenne wollt 
ich euch fragen wie berechne ich diese Zeitschleife bein einem 4Mhz 
Takt?
1
Zeit:          movlw  d'200'
2
               movwf  31h  
3
schl2          movlw  d'200'
4
               movwf  30h
5
schl1          nop  
6
               nop  
7
               nop
8
               nop
9
               nop  
10
               nop
11
               nop
12
               decfsz  30h,f
13
               goto  schl1
14
               decfsz  31h,f
15
               goto  schl2
16
               return

von Karl H. (kbuchegg)


Lesenswert?

In dem du dir

Schritt 1:   neben jeden Befehl die Anzahl der Takte schreibst
             die der Befehl benötigt.

Schritt 2:   dann gehst du deinen Code mal mit der Hand durch und
             spielst Computer. Du machst genau das, was auch dein
             µC macht.
             Während du das tust, addierst du die Taktzyklen, die
             du dir im Schritt 1 notiert hast.


Es wird nicht lange dauern und du hast den Dreh raus, wieviele 
Taktzyklen in Schleifen anfallen, wenn die Schleife so und so oft 
wiederholt wird. Aber am Anfang ist es am einfachsten einfach mal 
Computer zu spielen und tatsächlich genau dasselbe zu machen, wie dein 
µC. (Dazu ist es zb ratsam erst mal die Wiederholungszahlen auf kleine 
Wetre zu setzen, sonst simulierst du dich dumm und dämlich)

Wenn du dann die Anzahl der Takte kennst, dann kannst du das mit der 
bekannten Taktfrequenz in eine Zeit umrechnen.

von John (Gast)


Lesenswert?

Hallo Yan,
hier gibt es einen Code-Generator für Zeitschleifen:
http://www.piclist.com/techref/piclist/codegen/delay.htm

Zur Übung kannst Du Dir ja ein paar Delays erzeugen lassen, und dann 
nachrechnen ob Du auf die gleichen Werte kommst.

Gruß
John

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.