Как преобразовать приведенный ниже код Arduino в код Embedded c? - PullRequest
0 голосов
/ 14 апреля 2020

Может ли кто-нибудь преобразовать следующий код Arduino во встроенный код c? Я очень благодарен тому, кто преобразует это во встроенный код c. (этот код предназначен для подключения ЖК-дисплея Arduino к датчику Ultrasoni c)

    #include <LiquidCrystal.h>
      int inches = 0;
      int cm = 0;

      // initialize the library with the numbers of the interface pins
      LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

      void setup() {
        // set up the LCD's number of columns and rows:
        lcd.begin(16, 2);
        // Print a message to the LCD.
        pinMode(7, INPUT);
      }

      void loop() {
        lcd.clear();
        cm = 0.01723 * readUltrasonicDistance(7);
        inches = (cm / 2.54);
        if (cm<40){
        lcd.setCursor(0, 0);
        // print the number of seconds since reset:
        lcd.print("Caution: ");
        lcd.setCursor(0,1);
        lcd.print("Objects Nearby");
        delay(1000);
        }
      }

      long readUltrasonicDistance(int pin)
      {
        pinMode(pin, OUTPUT);  // Clear the trigger
        digitalWrite(pin, LOW);
        delayMicroseconds(2);
        // Sets the pin on HIGH state for 10 micro seconds
        digitalWrite(pin, HIGH);
        delayMicroseconds(10);
        digitalWrite(pin, LOW);
        pinMode(pin, INPUT);
        // Reads the pin, and returns the sound wave travel time in microseconds
        return pulseIn(pin, HIGH);
      }

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Вы можете сделать это, но немного больно. Преобразуйте основанную на классе функцию в функции типа c. Удалите зависимые функции и замените функцию своими собственными. и используйте int main (void) вместо void l oop () .

1 голос
/ 16 апреля 2020

Извините, но вы не можете, потому что зависимости этого кода LiquidCrystal.h (написаны на C ++ и содержат зависимости типа Arduino.h или Wire.h, библиотеки исключая программное обеспечение Arduino) и потому что методы типа pinMode(int,int), digitalWrite(int,int), delayMicroseconds(int) взято из Arduino.h.
Вы можете заставить свою библиотеку LiquidCrystal переписывать ее из оригинала.
Вот некоторые ресурсы: C заголовок и источник, скомпилируйте и загрузите , setup , стандартные avr libs .
Надеюсь, это поможет. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...