Синтаксическая ошибка рис. 18: RCNT EQU 0x20 и MYREG EQU 0x21 - PullRequest
0 голосов
/ 23 мая 2011

Я использую рис 18F4550 с компилятором C из микрочипа v8.63. я использую следующий код из книга "Микроконтроллеры Pic и встроенные системы с использованием ассемблера и c для pic18".

В следующей строке кода я получаю синтаксическую ошибку: RCNT EQU 0x20 и MYREG EQU 0x21.

_asm
    RCNT EQU 0x20
    MYREG EQU 0x21

    BCF TRISB,1
    MOVLW 0x41
    MOVWF MYREG
    BCF STATUS,C
    MOVLW 0x8
    MOVWF RCNT
    BSF PORTB,1
AGAIN
    RLCF MYREG,F
    BNC OVER
    BSF PORTB,1
    BRA NEXT
    OVER BCF PORTB,1
    NEXT DECF RCNT,F
    BNZ AGAIN
    BSF PORTB,1
_endasm

1 Ответ

0 голосов
/ 23 мая 2011

Согласно этой документации по микрочипам директивы ассемблера (например, EQU) не поддерживаются для встроенного asm, поэтому #define может быть единственным способом определения эквивалентов.

Изменить:

RCNT EQU 0x20
MYREG EQU 0x21

до:

#define RCNT 0x20
#define MYREG 0x21
...