Использование C для управления Raspberry Pi GPIO с 74HC595 - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь использовать сдвиговый регистр 74HC595, полученный с помощью набора Arduino, в проекте для моего Raspberry Pi; однако код, поставляемый с набором Arduino, не проясняет, как это будет сделано, поскольку многие из вызываемых функций не существуют в C за пределами ArduinoIDE. Предоставленный код выглядит следующим образом:

//www.elegoo.com
//2016.12.9 

int tDelay = 100;
int latchPin = 11;      // (11) ST_CP [RCK] on 74HC595
int clockPin = 9;      // (9) SH_CP [SCK] on 74HC595
int dataPin = 12;     // (12) DS [S1] on 74HC595

byte leds = 0;

void updateShiftRegister()
{
   digitalWrite(latchPin, LOW);
   shiftOut(dataPin, clockPin, LSBFIRST, leds);
   digitalWrite(latchPin, HIGH);
}

void setup() 
{
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
}

void loop() 
{
  leds = 0;
  updateShiftRegister();
  delay(tDelay);
  for (int i = 0; i < 8; i++)
  {
    bitSet(leds, i);
    updateShiftRegister();
    delay(tDelay);
  }
}

Кажется, что Arduino имеет следующие библиотеки, в то время как сам C этого не делает:

  • digitalWrite
  • pinMode
  • shiftOut
  • LSBFIRST

Есть ли способ включить библиотеки, предназначенные для Arduino, в пакет C? Должен ли я написать свои собственные библиотеки для работы устройств?

1 Ответ

0 голосов
/ 27 марта 2020

Arduino и C не используют одни и те же библиотеки. Библиотеки Arduino сохраняются в your_sketchbook_folder / library, тогда как C заголовки находятся в других местах. Они также не совместимы, так как вы не можете просто копировать и вставлять папки из одной в другую. У каждой зависимости есть свои зависимости, и перемещение папок таким способом приводит к большему количеству ошибок.

...