Ардуино ДУЕ и порты

forfrends
Offline
Зарегистрирован: 24.02.2015
Всем привет!
 Никак не могу найти информацию, какие комманды используются для работы с портами в Arduino DUE? Команды PINA, PINC, PORTA, PORTC, DDRC и др. выдают ошибку. Скажите, какие аналоги этих команд для ДУЕ (ATSAM3X8E)?
MagicianT
Offline
Зарегистрирован: 03.10.2015

Скачайте дата шит сначала для SAM3X, архитектура ARM другая чем AVR.

Потом найдите какую-нибудь библиотеку для DUE, для дисплая или еще чего, и вот если там прямой доступ к портам, её и изучайте. Что то типа:
void Init_I2C()
{
  // B.12-data & B.13-clk
  PMC->PMC_PCER0 = _BV(ID_PIOB);
    PIOB->PIO_PER |= PIO_PB12;
    PIOB->PIO_IDR |= PIO_PB12;
    PIOB->PIO_PER |= PIO_PB13;
    PIOB->PIO_IDR |= PIO_PB13;

  Set_DataLineIn();
  Set_ClockLineIn();
}

void Set_DataLineDn(void)
{
    PIOB->PIO_MDER |= PIO_PB12;
    PIOB->PIO_CODR |= PIO_PB12;
    PIOB->PIO_OWER |= PIO_PB12;
    PIOB->PIO_OER  |= PIO_PB12;
}

void Set_DataLineIn(void)
{
    PIOB->PIO_IFER |= PIO_PB12;
    PIOB->PIO_ODR  |= PIO_PB12;
}

void Set_ClockLineDn(void)
{
    PIOB->PIO_MDER |= PIO_PB13;
    PIOB->PIO_CODR |= PIO_PB13;
    PIOB->PIO_OWER |= PIO_PB13;
    PIOB->PIO_OER  |= PIO_PB13;
}

void Set_ClockLineIn(void)
{
    PIOB->PIO_IFER |= PIO_PB13;
    PIOB->PIO_ODR  |= PIO_PB13;
}

 

 

Hayabusa
Offline
Зарегистрирован: 29.03.2012
REG_PIOC_SODR = 0x1 << 21; //c21 = 9 pin
REG_PIOD_CODR = 0x1 << 7;

 

Качаешь пинмаппинг дуи и видишь что:

Порт С21, = для нас 9 нога, в HIGH

Порт D7 =11 нога LOW

ХЗ как сюда файл кинуть, погугли пинмаппинг дуи, найдешь легко.