Forum: Mikrocontroller und Digitale Elektronik HILFE ASM 0x1E <----- Was ist das ?


von hendrik m. (h-m)


Lesenswert?

Hallo Leute,
kann mir mal einer bitte erklären was der Code-Abschnitt zu bedeuten hat 
.

; Frequenz auf 32 kHz einstellen
        BSF     STATUS,RP0      ; Bank1
        MOVLW   0x1E            ;
        MOVWF   PR2             ; 32 kHz
        BCF     STATUS,RP0      ; Bank0

Warum 0x1E ?
Warum soll das 32 kHz sein ?

H.M

von Falk B. (falk)


Lesenswert?


von void (Gast)


Lesenswert?

> Warum 0x1E ? Warum soll das 32 kHz sein ?

Das verrät dir die Beschreibung von PR2 in deinem Datenblatt.

von Ottmar K. (wil1)


Lesenswert?

hendrik maier schrieb:
> Hallo Leute,
> kann mir mal einer bitte erklären was der Code-Abschnitt zu bedeuten hat
> .
>
> ; Frequenz auf 32 kHz einstellen
>         BSF     STATUS,RP0      ; Bank1
>         MOVLW   0x1E            ;
>         MOVWF   PR2             ; 32 kHz
>         BCF     STATUS,RP0      ; Bank0
>
> Warum 0x1E ?
> Warum soll das 32 kHz sein ?
>
> H.M

@hendrik

Offensichtlich wird hier ein Register als Zähler mit dem Wert hex 0x30 = 
dezimal=30 geladen.
Wenn die Ausgangsfrequenz z.B. 992kHz ist und das Register von 30 nach 0 
decrementiert wird, hast Du bei jedem 0-Durchgang den Takt für 32kHz 
(0-30 = 31 Zählvorgänge) 31*32kHz=992kHz

@Falk Brunner
Übrigens Assembler ist kein Selbstmord, im egenteil - macht Spass!

mfG Ottmar

von Martin K. (modin)


Lesenswert?

Ottmar K. schrieb:
> Offensichtlich wird hier ein Register als Zähler
> mit dem Wert hex 0x30 = dezimal=30 geladen.

Da passt etwas nicht! Bei mir kommt da immer noch 46 raus.

Gruß Martin

von hendrik m. (h-m)


Lesenswert?

Ottmar K. schrieb:
> Offensichtlich wird hier ein Register als Zähler mit dem Wert hex 0x30 =
> dezimal=30 geladen.
> Wenn die Ausgangsfrequenz z.B. 992kHz ist und das Register von 30 nach 0
> decrementiert wird, hast Du bei jedem 0-Durchgang den Takt für 32kHz
> (0-30 = 31 Zählvorgänge) 31*32kHz=992kHz
>
> @Falk Brunner
> Übrigens Assembler ist kein Selbstmord, im egenteil - macht Spass!
>
> mfG Ottmar

Gut
ich habe 4Mhr Keramikresonator. Heist 1 Mhz interner Takt.
Wenn ich das jetzt so machen würde

Frequenz auf 10 kHz einstellen
     BSF     STATUS,RP0      ; Bank1
     MOVLW   0x64            ;
     MOVWF   PR2             ; 10 kHz
     BCF     STATUS,RP0      ; Bank0

Wert 64 hex ist dann 100 decimal , heißt dann  100 Durchläufe a 10 kHz
bei einen einem Vorteiler von 1/1

oder sehe ich das verkehrt ?

von Ottmar K. (wil1)


Lesenswert?

Martin K. schrieb:
> Ottmar K. schrieb:
>> Offensichtlich wird hier ein Register als Zähler
>> mit dem Wert hex 0x30 = dezimal=30 geladen.
>
> Da passt etwas nicht! Bei mir kommt da immer noch 46 raus.
>
> Gruß Martin

Stimmt, war eben ein Flüchtigkeitsfehler :-) 30h=48dez, abe am Prinzip 
ändert sich nichts.

@hendrik maier
Ja, das ist so richtig.

mfG Ottmar

von (prx) A. K. (prx)


Lesenswert?

hendrik maier schrieb:
> Wert 64 hex ist dann 100 decimal

Sowas darf man auch direkt hinschreiben, ohne sich das Hirn zu 
verrenken:
       MOVLW   100

von Falk B. (falk)


Lesenswert?

@Ottmar K. (wil1)

>Übrigens Assembler ist kein Selbstmord, im egenteil - macht Spass!

Schon, aber nicht PIC-Assembler.

MfG
Falk, AVR- und 68000er Fan.

von hendrik m. (h-m)


Lesenswert?

Ottmar K. schrieb:
> Martin K. schrieb:
>> Ottmar K. schrieb:
>>> Offensichtlich wird hier ein Register als Zähler
>>> mit dem Wert hex 0x30 = dezimal=30 geladen.
>>
>> Da passt etwas nicht! Bei mir kommt da immer noch 46 raus.
>>
>> Gruß Martin
>
> Stimmt, war eben ein Flüchtigkeitsfehler :-) 30h=48dez, abe am Prinzip
> ändert sich nichts.
> @hendrik maier
> Ja, das ist so richtig.
> mfG Ottmar

Ottmar meinte bestimmt das 1E = 30 ist, musste auch nachdenken ...hat 
mir aber zum verstehen was da vor sich geht sehr sehr geholfen. Riesen 
dank an  Ottmar .

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.