balk 0 4 декабря, 2017 Опубликовано 4 декабря, 2017 · Жалоба вызывает затруднение запись в asm файле битов конфигурации например , пишу CONFIG PLLDIV=6 , транслятор пропускает а вот CONFIG CPUDIV=3 ( и любое другое значение ) пишет value not valid по сему предполагаю, что возможно , пишется для CPUDIV два числа, а как это делается ? и почему два бита в CPUDIV не могут быть записаны простым числом от 0 до 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
balk 0 4 декабря, 2017 Опубликовано 4 декабря, 2017 · Жалоба вообще странно в значение битого поля ,например, PLLDIV в такой форме записи CONFIG PLLDIV=6 записывается не b'110', а значение , соответствующее строке divide by 6. в такой же логике при записи CONFIG CPUDIV=3 в поле CPUDIV должно вписаться значение , соответствующее строке divide by 3, однако тарнслятор почему-ио ругается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
balk 0 5 декабря, 2017 Опубликовано 5 декабря, 2017 · Жалоба config_18f2550.pdfв общем, как всегда, вопрос решился, но теория до конца не пройдена. как-то у Микрочипа разъяснения по поводу правил записи конфигурации отсутствуют. надыбал такой файлик с мнемоникой битов конфигурации и этим пока уталил жажду знаний Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Driver_GV 1 5 декабря, 2017 Опубликовано 5 декабря, 2017 (изменено) · Жалоба Посмотрите файл в папке 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 Аналогично для других камней в соответствующих файлах Изменено 5 декабря, 2017 пользователем Driver_GV Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться