Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 13.02.2018, 14:29   #1
VladG
Junior Member
 
Регистрация: 16.02.2009
Сообщений: 15
Вес репутации: 100/34
VladG will become famous soon enoughVladG will become famous soon enough
По умолчанию MPLAB X IDE мультифайловый проект

Доброго всем!
MPLAB X IDE 4.05

Есть исходный test_0.zip однофайловый проект. Компилируется и работает (на смысл не смотрите). Вопросов нет.

Но хотелось бы перейти к многофайловому проекту. Те разбить исходный файл на четыре:
main_test - собственно сама программа
macro_test - куда бы скинуть все макросы и определения констант
init_test - стартовая инициализация чипа - порты, периферия
sub_test - подпрограммы

Чтение доков и курение тырнета - смог запихнуть в отдельный файл только подпрограммы, проект Test.zip. А все остальное ни как не выходит, как у Данилы-мастера. Да и то, похоже, выбор банка памяти компилятор делает сам, я типа не причем тут. Хотелось бы банк выбирать самостоятельно.
Собственно и вопрос - мои хотелки можно реализовать? Если да, подскажите, а то уже идей нет.
VladG вне форума   Ответить с цитированием
Старый 13.02.2018, 16:46   #2
masterok999
Senior Member
 
Регистрация: 28.07.2015
Адрес: NA
Возраст: 54
Сообщений: 151
Вес репутации: 515/16
masterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of light
По умолчанию Re: MPLAB X IDE мультифайловый проект

Так в чем проблема, выдирайте необходимые куски,
создавайте из них отдельные файлы, объявляйте их в основной программе.
Только макросы нужно выносить в самый верх, иначе не будет доступа к ним из того что окажется выше.
Например кое что я делаю так:
Код:
    INCLUDE    _B_MACRO_SET.inc
    INCLUDE    _B_CONF_LOADER.inc
    INCLUDE    _B_SPI_18_SOFT_WB.inc
    INCLUDE    _B_PREPROG.inc
    INCLUDE    _B_FLASH_WORKS.inc
все эти файлы должны быть в директории рядом с основным "main.asm", или должны быть явно указаны пути к ним.
Да, расширение не имеет значения, хоть .txt
У меня настроена подсветка синтаксиса в Emeditor на .inc ...

Последний раз редактировалось masterok999; 13.02.2018 в 16:55.
masterok999 вне форума   Ответить с цитированием
Старый 13.02.2018, 17:26   #3
VladG
Junior Member
 
Регистрация: 16.02.2009
Сообщений: 15
Вес репутации: 100/34
VladG will become famous soon enoughVladG will become famous soon enough
По умолчанию Re: MPLAB X IDE мультифайловый проект

Перенес макросы с определением констант в отдельный файл, поставил #include. Теперь компилируется без ошибок, но не работает - не светится светодиёдик.
Если не затруднит, не взгляните по test_3.zip как оно вышло по оформлению.
VladG вне форума   Ответить с цитированием
Старый 13.02.2018, 18:10   #4
masterok999
Senior Member
 
Регистрация: 28.07.2015
Адрес: NA
Возраст: 54
Сообщений: 151
Вес репутации: 515/16
masterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of light
По умолчанию Re: MPLAB X IDE мультифайловый проект

Недоделано, не все включено в основной файл из исходного после "#include <P16F887.inc>"...

Код:
    list P=16F887
    #include <P16F887.inc> 
    #include "macro_test.asm"
    
    global port_d
         
    code
     
port_d
        bank_0
        clrf PORTD
        nop
        bsf PORTD,0
        return
        
    end
Отсутствует этот фрагмент до определения макросов:

Код:
 __CONFIG _CONFIG1, _FOSC_INTRC_NOCLKOUT & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _IESO_ON & _FCMEN_ON & _LVP_OFF
 __CONFIG _CONFIG2, _BOR4V_BOR40V & _WRT_OFF
 
    cblock 0x20
       temp
    endc
и фрагмент после них:
Код:
       org 0x0000
       goto start                ;вектор сброса
       org 0x0004                ;вектор прерывания
       goto start
       retfie
        
start
;**********настройка
       bank_1 
       movlw B'11111111'
       movwf TRISA
       
       movlw B'11111111'
       movwf TRISB
       
       movlw B'11111111'            
       movwf TRISC
       
       movlw B'11110111'            
       movwf TRISD
       
       movlw B'11111111'
       movwf TRISE
;**********окончание настройки
Естественно без этих фрагментов ничего мигать не будет.
Для понимания сути включенных файлов, это тот же кусок кода, который ассемблер тупо встраивает в основной при компиляции
в той же последовательности в которой кусок включен by INCLUDE.
Нет включенного фрагмента - код будет кастрированным по отношению к исходному который нарезан.

Да, еще только сейчас заметил, зачем в макросе директива:
end

там программа и закончится....

Последний раз редактировалось masterok999; 13.02.2018 в 18:16.
masterok999 вне форума   Ответить с цитированием
Старый 13.02.2018, 21:07   #5
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 45
Сообщений: 3,665
Вес репутации: 6074/136
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: MPLAB X IDE мультифайловый проект

Але изобреДатели , начните читать уважаемого tester, затем плавно переходите к чтению мануала на компиль...
dosikus вне форума   Ответить с цитированием
Старый 14.02.2018, 09:41   #6
VladG
Junior Member
 
Регистрация: 16.02.2009
Сообщений: 15
Вес репутации: 100/34
VladG will become famous soon enoughVladG will become famous soon enough
По умолчанию Re: MPLAB X IDE мультифайловый проект

masterok999 Спасибо Вам! Немного понятно, есть от чего оттолкнуться.
Наложилось еще: прошиваю из IDE, не светится диёдик, тот же hex-ник из IPE - светится, глюки третьих версий, вторые работали устойчивей. Шаманство эпической силы....
VladG вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MIcrochip Solutions. Проблема с компиляцией примеров. Леонид Продукция MICROCHIP 10 12.11.2017 01:30
Не компилируется проект MPLAB X IDE Beta7.12 AlexanderMeg Продукция MICROCHIP 4 06.08.2013 19:05
Не компилируется проект в MPLAB X IDE v1.10. aleator Вопросы начинающих 9 08.07.2012 23:48
ICD2 VladG Продукция MICROCHIP 25 05.05.2009 11:26
не могу скомпелировать проект в MPLAB IDE Ilya85 Продукция MICROCHIP 5 11.06.2007 17:47


Часовой пояс GMT +3, время: 10:19.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot