setupWiringRP() #
Инициализирует библиотеку WiringRP.
Синтаксис #
int setupWiringRP(int MODE_PINS)
Параметры #
MODE_PINS - режим нумерации контактов.
Допустимые значения:
WRP_MODE_SUNXI- нумерация контактов по номерам sunxi (PA - PL).WRP_MODE_PHYS- нумерация контактов по их физическому расположению на GPIO-разъеме (1 - 40).WRP_MODE_WIRING- нумерации контактов по номерам wiring (для совместимости с Raspberry Pi 3).
Возвращаемое значение #
0 при успешном выполнении или отрицательное значение в случае ошибки.
Пример кода #
Пример инициализирует библиотеку WiringRP.
#include <stdio.h>
#include <stdlib.h>
#include "wiringRP.h"
void setup() {
// Инициализация библиотеки WiringRP.
// Используется режим нумерации контактов SUNXI.
if (setupWiringRP(WRP_MODE_SUNXI) < 0) {
onClose(2);
}
// Инициализация пользовательских объектов
// ...
}
void loop() {
// Основной цикл программы
// ...
}
ONDESTROY() {
// Освобождение занятых ресурсов, выключение напряжения на пинах
// ...
// Завершение работы библиотеки
releaseWiringRP();
// Выход из программы
exit(0);
}
MAIN_WIRINGRP();
releaseWiringRP() #
Завершает работу WiringRP, освобождая занятые библиотекой ресурсы.
Синтаксис #
void releaseWiringRP(void)
Параметры #
Ничего.
Возвращаемое значение #
Ничего.
Пример кода #
Пример завершает работу с библиотекой WiringRP.
#include <stdio.h>
#include <stdlib.h>
#include "wiringRP.h"
void setup() {
// Инициализация библиотеки WiringRP.
// Используется режим нумерации контактов sunxi.
if (setupWiringRP(WRP_MODE_SUNXI) < 0) {
onClose(2);
}
// Инициализация пользовательских объектов
// ...
}
void loop() {
// Основной цикл программы
// ...
}
ONDESTROY() {
// Освобождение занятых ресурсов, выключение напряжения на пинах
// ...
// Завершение работы библиотеки
releaseWiringRP();
// Выход из программы
exit(0);
}
MAIN_WIRINGRP();
getPin() #
Возвращает номер контакта GPIO-разъема, указанного в текущем режиме нумерации.
К СВЕДЕНИЮ
Режим нумерации задается при инициализации библиотеки функцией setupWiringRP.
Синтаксис #
int getPin(int pin, bool isValidate)
Параметры #
pin - номер контакта GPIO-разъема в текущем режиме нумерации.
isValidate - флаг для проверки доступности контакта в текущей версии распиновки:
true- выполнять проверку доступности.false- не выполнять проверку доступности.
Возвращаемое значение #
Номер контакта или отрицательное значение в случае недоступности контакта или ошибки выполнения.
Пример кода #
Пример отображает номер контакта с физическим номером 3 на GPIO-разъеме.
#include <stdio.h>
#include <stdlib.h>
#include "wiringRP.h"
// Физический номер контакта GPIO-разъема
const int physPinNumber = 3;
void setup() {
// Инициализация библиотеки WiringRP
// Используется режим нумерации PHYSICS
if (setupWiringRP(WRP_MODE_PHYS) < 0) {
onClose(2);
}
int pinNumber = getPin(physPinNumber, true);
printf("Указан физический номер контакта GPIO-разъема: %d\n", physPinNumber);
if (pinNumber < 0) {
printf("Контакт с физическим номером %d недоступен.\n", physPinNumber);
} else {
printf("Sunxi-номер контакта: %d.\n", pinNumber);
}
onClose(0);
}
void loop() {
// Основной цикл программы
}
ONDESTROY() {
// Завершение работы библиотеки
releaseWiringRP();
// Выход из программы
exit(0);
}
MAIN_WIRINGRP();
getVersion() #
Возвращает текущую версию библиотеки WiringRP.
Синтаксис #
void getVersion(int *major, int *minor)
Параметры #
major - указатель на переменную для хранения старшего значения версии библиотеки.
minor - указатель на переменную для хранения младшего значения версии библиотеки.
Возвращаемое значение #
Ничего.
Пример кода #
Пример отображает текущую версию библиотеки WiringRP.
#include <stdio.h>
#include <stdlib.h>
#include "wiringRP.h"
// Переменные для хранения старшего и младшего значений версии библиотеки.
int major, minor;
void setup() {
getVersion(&major, &minor);
printf("Версия WiringRP: %d.%d\n", major, minor);
// Выход из программы
onClose(0);
}
void loop() {
// Основной цикл программы
}
ONDESTROY() {
// Выход из программы
exit(0);
}
MAIN_WIRINGRP();
getPinOut() #
Возвращает текущую версию распиновки контактов GPIO-разъема.
Синтаксис #
int getPinOut(void)
Параметры #
Ничего.
Возвращаемое значение #
Текущая версия распиновки контактов GPIO-разъема.
Пример кода #
Пример отображает текущую версию распиновки контактов GPIO-разъема.
#include <stdio.h>
#include <stdlib.h>
#include "wiringRP.h"
void setup() {
// Инициализация библиотеки WiringRP
// Используется режим нумерации SUNXI
if(setupWiringRP(WRP_MODE_SUNXI) < 0) {
exit(EXIT_FAILURE);
}
int pinout = getPinOut();
printf("Текущая версия распиновки GPIO-разъема: %d.\n", pinout);
onClose(0);
}
void loop() {
// Основной цикл программы
}
ONDESTROY() {
// Завершение работы библиотеки
releaseWiringRP();
// Выход из программы
exit(0);
}
MAIN_WIRINGRP();
map() #
Отображает число из одного диапазона в другой.
Синтаксис #
int map(int x, int in_min, int in_max, int out_min, int out_max)
Параметры #
x - значение для отображения
in_min - нижняя граница диапазона значения x
in_max - верхняя граница диапазона значения x
out_min - нижняя граница целевого диапазона значения
out_max - верхняя граница целевого диапазона значения
Возвращаемое значение #
Отображенное значение в целевом диапазоне.
Пример кода #
Пример отображает указанное значение из исходного диапазона от 0 до 100 (включительно) в целевой диапазон от -512 до 512 (включительно).
#include <stdio.h>
#include <stdlib.h>
#include "wiringRP.h"
// Исходный диапазон
const int inMin = 0;
const int inMax = 100;
// Целевой диапазон
const int outMin = -512;
const int outMax = 512;
void setup() {
int mappedX = 0;
printf("Исходное значение X | Отображенное значение X\n");
for (int x = inMin; x <= inMax; x++) {
mappedX = map(x, inMin, inMax, outMin, outMax);
printf("%19d%26d\n", x, mappedX);
}
onClose(0);
}
void loop() {
// Основной цикл программы
}
ONDESTROY() {
// Выход из программы
exit(0);
}
MAIN_WIRINGRP();