Русский
Интеграции
Powered By GitBook
Программирование LEGO NXT на C
Текстовое программирование для LEGO NXT осуществляется на языке C с использованием макросов и функций из библиотеки ECRobot.
Общая структура программы:
    Сначала идёт подключение заголовочных файлов, используемых в программе (стандартные заголовочные файлы C и заголовочные файлы ECRobot).
    Затем идёт объявление констант и переменных, используемых в программе.
    За ними описываются функции ecrobot_device_initialize и ecrobot_device_terminate. Первая вызывается при запуске программы, вторая — при прекращении её работы. В них обычно выполняется инициализация и деинициализация датчиков, энкодеров и других устройств робота. По умолчанию в ecrobot_device_initialize инициализируется генератор случайных чисел.
    За ними идёт описание функции user_1ms_isr_type2, которая вызывается каждую миллисекунду.
    Затем идёт описание задачи, которая запускается на исполнение при старте программы: TASK (OSEK_Task_Number_0). Здесь, собственно, и выполняется большая часть программирования.
1
#include <string.h>
2
#include "kernel.h"
3
#include "kernel_id.h"
4
#include "ecrobot_interface.h"
5
#include "trik_studio_utils.h"
6
#include <time.h>
7
#include <stdlib.h>
8
#include <stdio.h>
9
#include <stdarg.h>
10
#include <math.h>
11
12
U32 __interpretation_started_timestamp__ = 0;
13
static const float pi = 3.14159265;
14
15
16
17
void ecrobot_device_initialize(void)
18
{
19
srand(systick_get_ms());
20
21
}
22
23
void ecrobot_device_terminate(void)
24
{
25
26
}
27
28
/* nxtOSEK hook to be invoked from an ISR in category 2 */
29
void user_1ms_isr_type2(void)
30
{
31
32
}
33
34
/* Main task */
35
TASK(TASK_MAIN)
36
{
37
__interpretation_started_timestamp__ = systick_get_ms();
38
39
TerminateTask();
40
}
Copied!
Полное описание функций на английском, доступных при программировании.
В качестве примеров можно использовать код, генерируемый по диаграммам самой средой TRIK Studio.
Last modified 1yr ago
Export as PDF
Copy link