Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
Как запустить компиляцию PIC18F4620?
RA9UBD Дата: Вс, 26.03.2023, 09:55  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 63
Репутация: 0   ±
Замечания:   ±
На сайте с 11.04.2008

Статус: Offline

Всем привет!
Есть необходимость откомпилировать программу на PIC18F4620, компилятор PIC Basic Pro.
Ранее программа была написана на PIC16F877A.
Все работает но не хватает памяти 8 кб. 
Был выбран 18F4620, тут 64кб.
Но как оказалось компилятора под этот проц нет.
Ко как бы нашелся в протеусе.
Создается HEX, в протеус в эмуляции его принимает, и запускает.
Но не работает. Я понимаю изза чего. Нужно регистры настроить.
Там ЖК экран подключен, и видимо порты как Аналоговые, или что то другое. Нужно их сделать просто цифровыми входами выходами.
Сделал тестовую програмку, мигающий светодиод. Он мигает. Значит программа запускается точно.
И не понятно как биты конфигурации настраивать.
Ранее я настраивал так:

@ DEVICE pic18F4620,XT_OSC ; X_TAL = 4 MHz
@ DEVICE pic18F4620, WDT_ON
@ DEVICE pic16F877A, PWRT_OFF 
@ DEVICE pic16F877A, BOD_OFF
@ DEVICE pic16F877A, LVP_OFF
@ DEVICE pic16F877A, CPD_OFF
@ DEVICE pic16F877A, WRT_OFF
@ DEVICE pic16F877A, PROTECT_ON 

Тут он не понимает эти строки выдает ошибку. 
Как теперь биты настроить?

Вот так прокатит?
DEFINE CONFIG1H = %00000001 
DEFINE CONFIG2L = %00011111
DEFINE CONFIG2H = %00000000
DEFINE CONFIG3H = %10000011

Или как мне в PIC Basic записать в адрес битов число?

Или может есть какая библиотека для 18F4620, что бы в PIC BASIC PRO появилась поддержка 18F4620?
Или на протон Бейсик перейти?
Кто что посоветует?
В протон Бейсик есть поддержка этого проца?

Добавлено (26.03.2023, 12:33)
---------------------------------------------
С горем пополам нашел компилятор для все процов 
Качайте https://drive.google.com/file....re_link
Там есть все! 
И есть inc файл где описываются все регистры.

ЯНДЕКС Дата: 26.03.2023
xvovanx Дата: Вс, 26.03.2023, 18:50  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 364
Репутация: 66   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата RA9UBD ()
Или на протон Бейсик перейти? Кто что посоветует?

Это самое лучшее решение.

П.С. я в свое время перешел по причине расчета дробных чисел, ни разу не пожалел, Протон очень похож, коррекция программы заняла полдня

Сообщение отредактировал xvovanx - Вс, 26.03.2023, 18:52
osnoe Дата: Пт, 21.11.2025, 00:00  |                                                                                                                Сообщение # 3
Группа: Заблокированные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 20.11.2025

Статус: Offline

Для компиляции проектов под PIC18F4620 чаще всего используют компилятор XC8 от Microchip (бесплатная версия Free вполне подходит для большинства задач).
Основные шаги подготовки:
  • Скачай и установи MPLAB X IDE (последнюю версию) с сайта microchip.com
  • Внутри MPLAB X установи компилятор XC8 (Tools → Plugins → Available Plugins → XC8) или скачай отдельно:https://www.microchip.com/mplabxc8windows или https://www.microchip.com/mplabxc8linux
  • Создай новый проект:File → New Project → Microchip Embedded → Standalone Project
    • Family: 8-bit PIC MCUs
    • Device: PIC18F4620
    • Tool: симулятор или любой программатор (PICkit 3/4, ICD 4, SNAP и т.д.)
    • Compiler: XC8 (выбери последнюю версию, например v2.45 на момент 2025 года)


    После этого появится пустой main.c и проект готов к написанию кода.

    Добавлено (21.11.2025, 00:01)
    ---------------------------------------------
    Пример минимального кода, который точно скомпилируется (C99 стиль, работает во всех версиях XC8):

    #include <xc.h>

    // Конфигурационные биты для PIC18F4620 (пример на внутреннем генераторе 8 МГц)
    #pragma config OSC = INTIO67    // Внутренний генератор, RA6 и RA7 как I/O
    #pragma config FCMEN = OFF
    #pragma config IESO = OFF
    #pragma config PWRT = OFF
    #pragma config BOREN = OFF
    #pragma config WDT = OFF
    #pragma config MCLRE = ON
    #pragma config LVP = OFF
    #pragma config XINST = OFF
    #pragma config DEBUG = OFF

    void main(void) {
        OSCCON = 0b01110010;    // 8 МГц внутренний генератор
        
        TRISD = 0x00;           // PORTD как выход
        LATD = 0x00;
        
        while(1) {
            LATDbits.LD0 = 1;   // включаем светодиод на RD0
            __delay_ms(500);
            LATDbits.LD0 = 0;
            __delay_ms(500);
        }
    }

    Добавлено (21.11.2025, 00:01)
    ---------------------------------------------
    Как запустить компиляцию и прошить микроконтроллер:
    Вариант 1 (самый быстрый):
    Нажми большую зелёную стрелку «Build Project» (или Ctrl+F11) — проект скомпилируется.
    Если ошибок нет, в Output появится что-то вроде:
    BUILD SUCCESSFUL (total time: ...)
    Вариант 2 (сразу прошить):
    Нажми «Make and Program Device» (молния с зелёной стрелкой) — соберёт и зальёт в микроконтроллер через выбранный программатор.
    Где посмотреть результат:

    • .hex файл лежит в папке проекта: dist/default/production/ИмяПроекта.production.hex
    • Этот же файл можно прошить через PICkit 4 → IPE (Standalone programmer) или через любой другой софт (MPLAB IPE, pk2cmd, etc.)

    Если хочешь компилировать из командной строки (без IDE):
    xc8-cc -mcpu=18F4620 main.c -o project.hex
    Готово! Теперь ты можешь компилировать и заливать код на PIC18F4620. Если будут ошибки — кидай сюда текст, разберём.

    Добавлено (21.11.2025, 00:05)
    ---------------------------------------------
    ' Поместить процедуру или таблицу по фиксированному адресу, например 0x2000
    @ CODE 0x2000          ' начиная с адреса 0x2000 (в байтах! PBP считает байты)

    MyBootloader:
        GOTO    StartBoot   ' сюда попадёт код загрузчика
        ...                 ' ваш код загрузчика
        RETURN

    ' Или таблица данных
    @ CODE 0x3000
    MyTable:
        DATA    "Hello World", 0
        DATA    1,2,3,4,5,0

    ' Вернуться к автопозиционированию
    @ CODE 0             ' 0 = назад в обычный режим (компоновщик сам выберет адрес)

    • Страница 1 из 1
    • 1
    Поиск: