Как да си направим PIC24 модули

За някои програмисти, които са свикнали да пишат програмен код в един файл (или да включват и други, C-файлове #INCLUDE директива в C-файл), което води до трудности при проектирането и свързване на независими модули, които са изолирани от основната програма, както и лесно ще бъдат прехвърлени към други проекти. Тук ще опиша как да го направя.

включва раздел - файла глава от същата единица е свързан към устройството. Всички други заглавни файлове включват по-добре .h файл, защото Те, наред с procheo може да има описание на видовете и константи, които zagolovoynym файл на нашия модул може да се използва.

Раздел променливи дефиниции - Ето ни определят променливите, използвани от модула. Освен това, за по-голяма яснота, първо описва глобалните променливи (тези, чиито обхват ще бъде разширен до други единици), а след това - на местно (т.е. тези, които са достъпни само в рамките на този модул може да се извърши)

Раздел прототипи местни функции - Той описва прототипи на всички местни функции на модула, т.е. тези функции, които се използват в модула и се наричат ​​само до същите функции модул.

Описание на функциите раздел - Този раздел е вече оперативна част от кода, т.е. описание на функциите. И за удобство, е желателно да се следват последователност: първо, в световен мащаб, а след това на местно ниво.

Заключване на модула - един и същ час-файл може да се включи в няколко модула, които включват и заглавни файлове помежду си. Така се оказва, че от гледна точка на файла съставител на могат да бъдат включени в друг файл два или повече пъти. Тогава ние ще видим, че всички типове и константи също са описани повече от един път, който причинява грешката компилатор (предефиниране на константи замени видове и т.н.). За да избегнете това, цялата заглавния файл скоби # ifndef ... # endif. Ако компилаторът вижда, че _NEW_MODULE_H константа не е определена, тя включва целия текст, в който, наред с други неща, и се определя от постоянна _NEW_MODULE_H. След рестартиране компилаторът вече може да се запознае с преписката, че това постоянно е включен, и всичко, което е оградено в скоби # ifndef ... # endif, те ще бъдат игнорирани. . (Забележка _NEW_MODULE_H постоянно име трябва да бъде си за всеки модул се препоръчва, тъй като името на константата да вземе името на файла с главна буква, наставка _H Nnaprimer За да се премахне объркване и възможно повторение на имена: в my_module.h файл дефинира константи _MY_MODULE_H; във файла клавиатура .. .h определят постоянен _KEYBOARD_H т.н.)

се включи раздел - тук са свързани заглавията модули, използвани от нашия модул.

определяне константи раздел - определят константите използвани от модул (или определяне операция модул). Тези константи ще бъдат достъпни както за модула и всички модули, включващи се в този файл. Ако някои постоянна нужда да се скрие (например, тя се използва само в този модул, и е вероятно, че в някои трети страни модул, за да се отговори на константа със същото име), неговата дефиниция могат да бъдат прехвърлени към основния файл.

определения тип Раздел - се определя от всички модули, специфични типове данни.

Раздел дефинират глобални променливи - променливи, описани тук, които ще бъдат достъпни от други модули. Трябва да се отбележи, че в заглавната част на файла променливи са описани с задължителната квалификант ученик.

Раздел прототипи глобални функции - са описани тук, действат прототипи, които са видими за други модули, така че компилаторът не знае с какво техните параметри може да се нарече.

макро раздел определения - може да се опише всяка присъща макро модул.

За да се даде възможност на генерираните файлове на вашия проект трябва да:

В IDE, добавете към проекта двата файла (new_module.c и new_module.h). Тя може да бъде ограничено само в Б-файл, но за удобство на работното място (работно място), е по-добре да се добавят двете. (Например, във файловете на MPLAB добавяне се извършва чрез менюто: Проект / Добавяне на файлове към проекта).

Във всички файлове на проекта, който е трябвало да се използват функции, видове, променливи, константи, или макроси от новите файлове, поставете ред:

реда на секциите, описанията на последователности в секции не е важно, разбира се, ако поръчката не е счупен, определен Si стандарт (например, прототип на функция, за да бъдат описани по-рано във файла от първия обръщане към него). Освен това, ако описанието ще бъдат смесени един с друг (например, в началото има променливи, а след това прототипи, и след това отново на променливите и т.н.), че е добре, с изключение на загубата на яснота, че няма да се случи.

Ако е необходимо, добавете друг раздел (naprmer, понякога е необходимо да се опишат няколко константи в основната файл б).

Имайте предвид, че в раздел Б на файла няма описание на прототипи на глобални функции. може да се добави на свой ред, но се оказва, че те просто ще дублира съществуващите прототипи, описани в з-файла (тук те трябва да бъдат, в противен случай останалите модули няма да знаят за тези функции). Това е малко неудобно, тъй като чрез промяна на спецификацията на функция за корекция в нивото на техниката трябва да направите, на две места.