Перейти к содержанию
    

PIC18F2550 слово конфигурации

вызывает затруднение запись в asm файле битов конфигурации

например , пишу CONFIG PLLDIV=6 , транслятор пропускает

а вот CONFIG CPUDIV=3 ( и любое другое значение ) пишет value not valid

 

по сему предполагаю, что возможно , пишется для CPUDIV два числа,

а как это делается ?

и почему два бита в CPUDIV не могут быть записаны простым числом от 0 до 3

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вообще странно

в значение битого поля ,например, PLLDIV в такой форме записи

CONFIG PLLDIV=6 записывается не b'110', а значение , соответствующее строке divide by 6.

в такой же логике при записи

CONFIG CPUDIV=3 в поле CPUDIV должно вписаться значение , соответствующее строке divide by 3,

однако тарнслятор почему-ио ругается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

config_18f2550.pdfв общем, как всегда, вопрос решился, но теория до конца не пройдена.

как-то у Микрочипа разъяснения по поводу правил записи конфигурации отсутствуют.

надыбал такой файлик с мнемоникой битов конфигурации и этим пока уталил жажду знаний

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите файл в папке Microchip\MPASM Suite\p18f2550.inc

В нем содержатся описания каждого бита и как они указываются в ASM файле (ближе к концу)

 

;==========================================================================
;
;   IMPORTANT: For the PIC18 devices, the __CONFIG directive has been
;              superseded by the CONFIG directive.  The following settings
;              are available for this device.
;
;   PLL Prescaler Selection bits:
;     PLLDIV = 1           No prescale (4 MHz oscillator input drives PLL directly)
;     PLLDIV = 2           Divide by 2 (8 MHz oscillator input)
;     PLLDIV = 3           Divide by 3 (12 MHz oscillator input)
;     PLLDIV = 4           Divide by 4 (16 MHz oscillator input)
;     PLLDIV = 5           Divide by 5 (20 MHz oscillator input)
;     PLLDIV = 6           Divide by 6 (24 MHz oscillator input)
;     PLLDIV = 10          Divide by 10 (40 MHz oscillator input)
;     PLLDIV = 12          Divide by 12 (48 MHz oscillator input)
;
;   System Clock Postscaler Selection bits:
;     CPUDIV = OSC1_PLL2   [Primary Oscillator Src: /1][96 MHz PLL Src: /2]
;     CPUDIV = OSC2_PLL3   [Primary Oscillator Src: /2][96 MHz PLL Src: /3]
;     CPUDIV = OSC3_PLL4   [Primary Oscillator Src: /3][96 MHz PLL Src: /4]
;     CPUDIV = OSC4_PLL6   [Primary Oscillator Src: /4][96 MHz PLL Src: /6]
;
;   USB Clock Selection bit (used in Full-Speed USB mode only; UCFG:FSEN = 1):
;     USBDIV = 1           USB clock source comes directly from the primary oscillator block with no postscale
;     USBDIV = 2           USB clock source comes from the 96 MHz PLL divided by 2

......

 

 

PS

Аналогично для других камней в соответствующих файлах

 

Изменено пользователем Driver_GV

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...