Question

Nous essayons de compiler notre code C qui comprend un grand nombre de l'assemblée pour les diverses opérations (timing, la production de formes d'onde de sortie, et la mesure de la fréquence d'entrée).

Nous reçois le même message d'erreur pour quelques-uns de nos ASM opérations:

".org en REL de la zone ou de la directive / mnémonique erreur"

Dans notre code ci-dessous, nous obtenons 3 erreurs (j'ai commenté les lignes elles se produisent, et ce qu'est exactement l'erreur que nous avons est.Merci!

void getFrequency(int *freqHi, int *freqLo) 
{
    __asm
    ;
    ; A program that measures the frequency at pin T0 (P1.2)

    ljmp GetFreq

    Wait1s:
        mov R2, #40
    M3: mov R1, #250
    M2: mov R0, #181
    M1: djnz R0, M1 ; 2 machine cycles-> 2*0.27126us*181=100us
        djnz R1, M2 ; 100us*250=0.025s
        djnz R2, M3 ; 0.025s*40=1s
        ret

    ;Initializes timer/counter 0 as a 16-bit counter
    InitTimer0:
        setb T0 ; Enable pin T0 as input
        clr TR0 ; Stop timer 0
        mov a,#0F0H ; ERROR <o> .org in REL area or directive / mnemonic error
        anl a,TMOD
        orl a,#00000101B ; Set timer 0 as 16-bit counter ERROR <o> .org in REL area or directive / mnemonic error
        mov TMOD,a
        ret

    GetFreq:
        mov SP, #7FH ; Set the stack pointer to the begining of idata ERROR <o> .org in REL area or directive / mnemonic error

        lcall InitTimer0

        clr TR0 ; Stop counter 0
        mov TL0, #0
        mov TH0, #0

        setb TR0 ; Start counting
        lcall Wait1s ; Wait one second
        clr TR0 ; Stop counter 0, TH0-TL0 has the frequency

        mov R0, TH0
        mov R1, TL0

        mov _freqHi, R0
        mov _freqLo, R1

    __endasm;

    // freqHi, freqLo have respective values
}
Était-ce utile?

La solution

sdccs 'assembleur ne prend pas en charge le H et B le suffixe de la syntaxe pour l'immédiat, les valeurs que vous utilisez.

Essayez #0xF0 au lieu de #0F0H, et #0b00000101 au lieu de #00000101B, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top