Машинный перевод
Архитектура полностью отличается от серии SAM3X.
Есть 5 портов, A / B / C / D / E, каждый 32 бит, сопоставленные с выводами, как описано в файле variant.cpp.
Для каждого порта есть несколько регистров, которые читают и записывают его, и каждый вывод может
обновляться атомарно, поэтому не требуется специальная обработка прерываний:
PIO_PER - напишите 1 здесь, чтобы переопределить другие периферийные устройства и разрешить использование GPIO для контактов
PIO_OER - напишите 1 здесь, чтобы установить контакты как OUTPUT
PIO_ODR - напишите 1 здесь, чтобы установить контакты как INPUT
* PIO_SODR - напишите 1 здесь, чтобы установить выходные выходы HIGH
* PIO_CODR - напишите 1 здесь, чтобы установить выходные контакты LOW
* PIO_PDSR - фактическое состояние считывания контактов на порту.
PIO_PUDR - напишите 1 здесь, чтобы отключить внутреннее подтягивание для контактов
PIO_PUER - напишите 1 здесь, чтобы включить внутреннее подтягивание для контактов
Существуют и другие регистры для фильтрации входных данных, прерываний и т. Д. И т. Д.
но я думаю, что это основные. Если вы вызываете pinMode () для настройки
pin вам нужен только один отмеченный «*» для ввода I / O
Arduino IDE
int led = 8;
int led_2 = 13;
void setup()
{
REG_PIOC_OER = 0x1 <<22;
REG_PIOB_OER = 0x1 <<27;
}
void loop()
{
REG_PIOC_SODR = 0x1 << 22; //c22 = 8 pin
REG_PIOB_CODR = 0x1 << 27; //b27=13 pin
delay(1000);
REG_PIOC_CODR = 0x1 << 22; //c22=8 pin
REG_PIOB_SODR = 0x1 << 27; //b27 = 13 pin
delay(1000);
}
Arduino DUE работа с портами