Как изменить библиотеку написанную под arduino uno в attiny13

Тема в разделе "Arduino & Shields", создана пользователем blackflash2009, 9 авг 2023.

  1. Библиотека написана под ядро уны при компиляции ругается (initializing argument 1 of 'int16_t analogRead(analog_pin_t)' int16_t analogRead(analog_pin_t pin); ) что аналог пин надо иницыализировать по другому зашел на страницу ядра MicroCore там написано "MicroCore requires you to refer to analog pins like so: analogRead(A3);. The compiler will throw an error if you use the digital pin number instead. analog_pin_t#define"
    Пробовал писать в тексте примера и А3 и ADC3 я так понял что в самой библиотеки прописан сам пин под другое едро может кто поменять чтобы работало ?
     

    Вложения:

    • LM35-master.zip
      Размер файла:
      214,1 КБ
      Просмотров:
      78
    • LM35-master.zip
      Размер файла:
      214,1 КБ
      Просмотров:
      63
  2. User248

    User248 Гик

    Там в библиотеке вообще нет привязки к какой-либо ардуине. Просто нужно указать аналоговый вход при создании объекта.
    Код (C++):
    LM35 sensor(A0);
     
    Последнее редактирование: 9 авг 2023
  3. cores\microcore/Arduino.h:102:11: note: initializing argument 1 of 'int16_t analogRead(analog_pin_t)'
    int16_t analogRead(analog_pin_t pin);
     
  4. User248

    User248 Гик

    Можно обойтись без этой библиотеки, только функцию из неё взять.

    Код (C++):

    double LM35getTemp()
    {
        double value = analogRead(A0);

        double celcius = (double(value) * ((5.0 / 1023.0) / 0.01));

        return celcius;
    }
     
     
  5. Asper Daffy

    Asper Daffy Иксперд

    В библиотеке тип данных для пина - int, а в ядре MicroCore тип должен быть analog_pin_t .

    Нужно просто поменять тип свойства класса и параметра конструктора.

    Вы сами можете.

    В строке №4 .cpp файла, а также в строках №№ 15 и 20 .h файла замените "int" на "analog_pin_t"

    Делов-то!
     
    blackflash2009 нравится это.