Ошибка компиляции для платы lgt8f328

Hi,
I can not compile anything. Although fully complied with all the conditions specified in the file readme. The installation path is correct. All is correct, but I have error
«C:UsersKonstyantynAppDataLocalArduino15packagesarduinotoolsavr-gcc4.8.1-arduino5/bin/avr-gcc» -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_LARDU_328E -DARDUINO_ARCH_AVR «-ID:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8f» «-ID:KonstyantynDocumentsArduinohardwareLGTavrvariantslgt8fx8p» «D:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8fwiring_analog.c» -o «C:UsersKONSTY1AppDataLocalTemparduino_build_105324corewiring_analog.c.o»
«C:UsersKonstyantynAppDataLocalArduino15packagesarduinotoolsavr-gcc4.8.1-arduino5/bin/avr-gcc» -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_LARDU_328E -DARDUINO_ARCH_AVR «-ID:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8f» «-ID:KonstyantynDocumentsArduinohardwareLGTavrvariantslgt8fx8p» «D:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8fhooks.c» -o «C:UsersKONSTY1AppDataLocalTemparduino_build_105324corehooks.c.o»
«C:UsersKonstyantynAppDataLocalArduino15packagesarduinotoolsavr-gcc4.8.1-arduino5/bin/avr-gcc» -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_LARDU_328E -DARDUINO_ARCH_AVR «-ID:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8f» «-ID:KonstyantynDocumentsArduinohardwareLGTavrvariantslgt8fx8p» «D:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8fwiring_pulse.c» -o «C:UsersKONSTY~1AppDataLocalTemparduino_build_105324corewiring_pulse.c.o»
cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

exit status 1
Ошибка компиляции для платы LGT8F328P-LQFP32 MiniEVB.

In this case, I just tried to compile one of the examples for your board.
Will there be any help from your side?

Hi :

I am tring to get battery info by IP5306_I2C , but something going wrong :

Arduino IED 1.8.15 and VSCODE
board esp8266 and. LGT8F328P the same compile error
/Users/xiaoning/Documents/Arduino/libraries/IP5306/IP5306.cpp: In member function ‘uint8_t IP5306::writeBytes(uint8_t, uint8_t, uint8_t*, uint8_t)’:
/Users/xiaoning/Documents/Arduino/libraries/IP5306/IP5306.cpp:13:38: error: ‘I2C_ERROR_OK’ was not declared in this scope
return Wire.endTransmission() == I2C_ERROR_OK;

but ESP32 is OK

so , I think #define I2C_ERROR_OK can solve this issue

ua6em

ua6em аватар

Offline

Зарегистрирован: 17.08.2016

Блинк на третьем таймере:
Скетч:

// Пример использования Таймера 3  (Блинк на таймере) для платы WAVGAT
// (с) UA6EM на основе заимствований на arduino.ru у DIMAX и ЕвгенийП
// используется библиотека ЕвгенийП  "ConstTimers.h"

#include "lgtx8p.h"

#ifndef CONSTANTS
  #include "ConstTimers.h"
  // Параметры для работы таймера/счётчика №3 на частоте 1Гц
  //
  constexpr uint8_t timerBits3 = getPrescalerBits(1, 1);
  constexpr uint16_t timerTicks3 = getTimerTicks(1, 1);
  //
#endif

void setup() {

   #ifdef CONSTANTS
    TCCR3B = 4;
    OCR3A = 62500; 
   #else
    TCCR3B =1<<WGM32 |timerBits3; // Режим СТС WGM3[3:0]=4 или 12
    
    if(timerTicks3 > 255){
    uint8_t r3ah = timerTicks3 / 256; 
    OCR3AH = r3ah;
    uint8_t r3al = timerTicks3 % 256;
    OCR3AL = r3al;
    }else{
    OCR3AH = 0x00;
    uint8_t al = timerTicks3;
    OCR3AL = al;
    }   
  #endif
 DDRF = 1<<2 | 1<<1;   // Разрешаем вывод в порты D1 и D2 
 TCCR3A=1<<COM3A0 | 1<<COM3B0;  // ПИН D2 + TXI

 pinMode(13,OUTPUT);
 //Serial.begin(115200);
 
 }// end-Setup

void loop(){
  digitalWrite(13,!digitalRead(2));
//  Serial.println(timerBits3);
   } // END

Библиотека:

#ifndef  CONSTTIMERS_H
#define CONSTTIMERS_H

///////////////////////////////////////////////////////////////////////////////
//
//  Недобиблиотека вычисления битов конфигурации делителя частоты и 
//  количества тиков таймера по заданной частоте.
//
//  Предназначена для использования с микроконтроллером ATmega328P 
//  (например, в Ардуино или в AVR-студии). Модификация для других 
//  микроконтроллеров возможна и несложна, как будет показано ниже.
//
//  Основная особенность: ВСЕ ВЫЧИСЛЕНИЯ ПРОИСХОДЯТ ВО ВРЕМЯ КОМПИЛЯЦИИ. 
//  В РЕЗУЛЬТИРУЮЩИЙ КОД НЕ ПОПАДАЕТ НИ ОДНОГО БАЙТА НИ КОДА, НИ ДАННЫХ.
//
//    замечание о точности: 
//      гарантировать точность произвольной частоты невозможно, т.к. требуемый период 
//      может элементарно не являться делителем тактовой частоты микроконтроллера или 
//      его, может быть, невозможно подобрать имеющимися делителями частоты. 
//      Недобиблиотека ВСЕГДА выдаёт наилучший из возможных результатов для заданной частоты
//      на заданном таймере. Но при этом нет никакой возможности узнать насколько хорош
//      результат и какова погрешность. Если требуется инструмент для «зрячего» выбора
//      частот, следует взять «калькулятор таймеров» (их много, например, есть и у автора).
//    конец замечания о точности.
//
//  ИСПОЛЬЗОВАНИЕ
//
//  Для использования необходимо включить файл «ConstTimers.h» и определить константы с 
//  модификатором constexpr для нужных конфигурационных битов и количества тиков, которым 
//  присвоить значения, возвращаемые функциям getPrescalerBits и getTimerTicks соответсвенно. 
//  Обе функции принимают два параметра – номер таймера и требуемую частоту. Функция 
//  getPrescalerBits возвращает результат типа uint8_t. Функция getTimerTicks возвращает результат 
//  типа uint16_t, т.к. таймер может быть 16-битным, для 8-битных таймеров значение не превышает 255.
//
//  Например:
//
//    #include <ConstTimers.h>
//    //
//    // Параметры для работы таймера/счётчика №2 на частоте 1кГц
//    //
//    constexpr uint8_t timerBits2 = getPrescalerBits(2, 1000);
//    constexpr uint8_t timerTicks2 = getTimerTicks(2, 1000);
//    //
//    // Параметры для работы таймера/счётчика №1 на частоте 500Гц
//    //
//    constexpr uint8_t timerBits1 = getPrescalerBits(1, 500);
//     constexpr uint16_t timerTicks1 = getTimerTicks(1, 500);
//    .............
//    //
//    // Конфигурация таймеров
//    // таймер №2
//    TCCR2B = timerBits2;
//    OCR2A = timerTicks2;
//    // таймер №1
//    TCCR1B = timerBits1;
//    OCR1B = timerTicks1;
//
//Результат работы будет точно такой же, как если написать константы вместо вызовов функций:
//
//  TCCR2B = 4;
//  OCR2A = 250;
//  TCCR1B = 1;
//  OCR1B = 32000;
//
// Ни на один байт код не изменится.
//
//  КОФИГУРАЦИЯ:
//
//  1. расчёт производится для текущей тактовой частоты микроконтроллера. Если нужно 
//    считать для какой-то другой частоты, измените константу ниже:
//
#define FCPU  F_CPU
//
//  2. ниже приведён массив конфигурации таймеров. Количество элементов массива 
//    соответсвует количеству таймеров. Нулевой элемент описывает нулевой таймер, 
//    первый элемент – первый таймер и т.д. Если требуется расширить недобиблиотеку для других 
//    микроконтроллеров, нужно изменить именно этот массив и больше изменять ничего не надо.
//
//  В массиве для каждого таймера указано:
//    1) разрядность таймера в виде максимально возможного значения количества тиков 
//      (для 8-разрадных таймеров – 0xFF, для 16-разрядных – 0xFFFF.
//    2) указатель на массив делителей частоты. Делители начинаются с 1 (делитель 0 писать не нужно)
//    3) количество делителей частоты у данного таймера.
//
struct STimerParameters {
  const uint32_t maxValue;
  const int * prescalers;
  const uint8_t totalPrescalers;
};

constexpr  int prescalers01[] = {1, 8, 64, 256, 1024 };
constexpr  int  prescalers2[] = {1, 8, 32, 64, 128, 256, 1024 };

constexpr STimerParameters timerParameters[3] = {
  {0x000000FFul, prescalers01, sizeof(prescalers01) / sizeof(prescalers01[0])},
  {0x0000FFFFul, prescalers01, sizeof(prescalers01) / sizeof(prescalers01[0])},
  {0x000000FFul, prescalers2, sizeof(prescalers2) / sizeof(prescalers2[0])},
};
constexpr int8_t totalTimers = sizeof(timerParameters) / sizeof(timerParameters[0]);
//
//
// ЛИЦЕНЗИЯ
//
// Данный код поставляется по лицензии ПНХ.
//
// 1. Вы можете свободно использовать или не использовать его в коммерческих, 
//    некоммерческих, и любых иных, не запрещённых законом, целях.
//
// 2. Автор не несёт решительно никакой ответственности за любые положительные
//    или отрицательные результаты использования или неиспользования данного кода.
//
// 3. Если Вам таки хочется сделать автору предъяву, то Вы знаете, куда
//    Вам следует обратиться. А если не знаете, то см. название лицензии.
//
// 4. Если данный код вдруг Вам пригодился (как учебник или ещё как что) и Вам
//    почему-либо (ну, приболели, может) захотелось отблагодарить автора рублём,
//    то это всегда пожалуйста – WebMoney, кошелёк № R626206676373
//
// 5. Возникновение или невозникновение у Вас желаний, обозначенных в п.4 
//     настоящей лицензии никак не связано с п.1, который действует безусловно 
//     и независимо от п.4.
//
// 6. Если данный код нужен Вам с какой-либо другой лицензией, например, с
//     сопровождением или Вы нуждаетесь во внесении изменений, свяжитесь с автором
//     на предмет заключения договора гражданско-правового характера.
//
///////////////////////////////////////////////////////////////////////////////

constexpr uint32_t getPeriod(const uint32_t frequency) {
  return (FCPU + frequency / 2) / frequency;
}

constexpr uint16_t prValue(const int8_t prescalerId, const int8_t nTimer) {
  return timerParameters[nTimer].prescalers[prescalerId];
}

constexpr uint32_t getDesiredTicks(const uint32_t frequency, const int8_t prescalerId, const int8_t nTimer) {
  return (getPeriod(frequency) + prValue(prescalerId, nTimer) / 2) / prValue(prescalerId, nTimer);
}

constexpr uint32_t correctTicks(uint32_t dTicks, const uint32_t maxValue) {
  return dTicks > maxValue ? maxValue : dTicks;
}

constexpr uint32_t getTicks(const uint32_t frequency, const int8_t prescalerId, const int8_t nTimer) {
  return prescalerId >= timerParameters[nTimer].totalPrescalers ? 0x1FFFFFFF :
  correctTicks(getDesiredTicks(frequency, prescalerId, nTimer), timerParameters[nTimer].maxValue);
}

constexpr uint32_t getBits(const int8_t prescalerId, const int8_t nTimer) {
  return prescalerId >= timerParameters[nTimer].totalPrescalers ? timerParameters[nTimer].totalPrescalers : prescalerId + 1;
}


constexpr int32_t absError(const uint32_t frequency, const int8_t prescalerId, const int8_t nTimer) {
  return abs(prescalerId >= timerParameters[nTimer].totalPrescalers ? 0x1FFFFFFF :
    static_cast<int32_t>(getTicks(frequency, prescalerId, nTimer) * prValue(prescalerId, nTimer)) -
    static_cast<int32_t>(getPeriod(frequency)));
}

constexpr uint8_t getPrescalerId(const uint32_t error, const uint32_t newError, const uint8_t prId, const uint8_t candidate, const uint32_t frequency, const int8_t nTimer) {
  return
  (prId >= timerParameters[nTimer].totalPrescalers) ? candidate
  : getPrescalerId(newError, absError(frequency, prId+1, nTimer), prId+1, (error <= newError) ? candidate : prId, frequency, nTimer);
}

constexpr uint16_t getTimerTicks(const int8_t nTimer, const uint32_t freq) {
  return getTicks(freq, getPrescalerId(0x1FFFFFul, absError(freq, 0, nTimer), 0, 0, freq, nTimer), nTimer);
}

constexpr uint8_t getPrescalerBits(const int8_t nTimer, const uint32_t freq) {
  return getBits(getPrescalerId(0x1FFFFFul, absError(freq, 0, nTimer), 0, 0, freq, nTimer), nTimer);
}

#endif  //  CONSTTIMERS_H

  • #1

Доброго времени суток!!
Столкнулся с проблемой.
Записал скетч на плату (Arduino nano V3.0, на чипе WAVGAT AVGA328P AU1738, а на другой микросхеме WCH CH340G), Arduino IDE — пишет Загрузка завершена ( тобишь, скетч загружен на плату), подключаю светодиоды, и просто белым горят все диоды ( проверил, подключен управляющий контакт именно к DI в начале ленты ( ну не лента а Гирлянда WS2811) на кнопку вообще 0 реакции!!. Может Ардуино ИДЕ не поддерживает эту плату??(( или в чем может быть проблема??

Wan-Derer


  • #2

@EugeniUP, В IDE надо подсунуть ядро для этого МК. Как это сделать описано в карточке товара, там где ты её покупал.
Вероятность что запустится — примерно 0.1%

  • #3

@EugeniUP, В IDE надо подсунуть ядро для этого МК. Как это сделать описано в карточке товара, там где ты её покупал.
Вероятность что запустится — примерно 0.1%

Ура товарищи ПОБЕДА)) Работает!! Нашел библиотеки и софт для WAVGAT UNO R3 ; NANO V3.0 ; и Pro mini.
Если у кого-то будет такая же проблема, поделюсь файлами, а там дальше все просто.WAVGAT.jpg

kostyamat


  • #4

Ура товарищи ПОБЕДА)) Работает!! Нашел библиотеки и софт для WAVGAT UNO R3 ; NANO V3.0 ; и Pro mini.
Если у кого-то будет такая же проблема, поделюсь файлами, а там дальше все просто.Посмотреть вложение 7399

Та какая там победа? Это только начало, у вас с этой платкой просто ещё до секса не дошло, только цветочно+конфетный период в разгаре.
Ардуино кор, для этой «прелести» корявый до ужаса, как и сама плата.
Хотя чип, сам по себе, и не плохой, покруче оригинала будет.
Ардуино кор лучше этот использовать https://github.com/dbuezas/lgt8fx
А сами платы такие брать

  • LGT8F328P.png

    152.4 KB
    Просмотры: 69

  • #5

Заказал на али простую nano 3 , но прислали сиё устройство WAVGAT NANO 3. В IDE дрова и библиотеке установил Blink на ней заработал. Заливаю прошивку БУДИЛЬНИК-РАССВЕТ Выодит «class EEPROMClass’ has no member named ‘update'».
Если выбрано в IDE WAVGAT NANO 3 то в программе где стоят строки EEPROM.update , update-неактивно, если в IDE поставить стандартную nano 3 то строки с EEPROM.update активируются. Возможноли доточить данный скетч для WAVGAT ? подскажите где копать и куда :)? или только не ней Blink и будет работать

  • Screenshot_12.jpg

    94.5 KB
    Просмотры: 126

  • Screenshot_13.jpg

    95.2 KB
    Просмотры: 93

kostyamat


  • #6

Заказал на али простую nano 3 , но прислали сиё устройство WAVGAT NANO 3. В IDE дрова и библиотеке установил Blink на ней заработал. Заливаю прошивку БУДИЛЬНИК-РАССВЕТ Выодит «class EEPROMClass’ has no member named ‘update'».
Если выбрано в IDE WAVGAT NANO 3 то в программе где стоят строки EEPROM.update , update-неактивно, если в IDE поставить стандартную nano 3 то строки с EEPROM.update активируются. Возможноли доточить данный скетч для WAVGAT ? подскажите где копать и куда :)? или только не ней Blink и будет работать

В теме 4 сообщения до вас. Неужели так сложно прочитать?

  • #7

В теме 4 сообщения до вас. Неужели так сложно прочитать?

Все четыре прочитал. Для данной платы в IDE все библиотеки и софт установил. Но при компиляции скетча на эту плату выводит ошибку

kostyamat


  • #8

Какие библиотеки установили? Какую ошибку выдает? Лог компиляции скиньте

  • #9

Какие библиотеки установили? Какую ошибку выдает? Лог компиляции скиньте

Библиотеки ставил какие с проектом шли, а также какие для платы предлагали.

Arduino: 1.8.10 (Windows 7), Плата:»WAVGAT NANO 3.0″
Внимание: platform.txt из ядра ‘Arduino AVR Boards’ содержит устаревшие recipe.ar.pattern=»{compiler.path}{compiler.ar.cmd}» {compiler.ar.flags} {compiler.ar.extra_flags} «{build.path}/{archive_file}» «{object_file}», автоматически преобразовано в recipe.ar.pattern=»{compiler.path}{compiler.ar.cmd}» {compiler.ar.flags} {compiler.ar.extra_flags} «{archive_file_path}» «{object_file}». Ожидайте обновления ядра.
E:SISTEMDownloadsБУДИЛЬНИК-РАССВЕТDawn-Clock-masterfirmwaredawn_clock_v1.1tmpdawn_clock_v1.1dawn_clock_v1.1.ino: In function ‘void encoderTick()’:
dawn_clock_v1.1:299:14: error: ‘class EEPROMClass’ has no member named ‘update’
dawn_clock_v1.1:300:14: error: ‘class EEPROMClass’ has no member named ‘update’
dawn_clock_v1.1:333:14: error: ‘class EEPROMClass’ has no member named ‘update’
Несколько библиотек найдено для «GyverEncoder.h»
Используется: E:SISTEMDownloadsarduino-1.8.10-windows_2020arduino-1.8.10librariesGyverEncoder
Несколько библиотек найдено для «GyverTM1637.h»
Используется: E:SISTEMDownloadsarduino-1.8.10-windows_2020arduino-1.8.10librariesGyverTM1637
Несколько библиотек найдено для «CyberLib.h»
Используется: E:SISTEMDownloadsarduino-1.8.10-windows_2020arduino-1.8.10librariesCyberLib
Несколько библиотек найдено для «Wire.h»
Используется: E:SISTEMDownloadsarduino-1.8.10-windows_2020arduino-1.8.10librariesWire
Несколько библиотек найдено для «RTClib.h»
Используется: E:SISTEMDownloadsarduino-1.8.10-windows_2020arduino-1.8.10librariesRTClib
Несколько библиотек найдено для «EEPROM.h»
Используется: E:SISTEMDownloadsarduino-1.8.10-windows_2020arduino-1.8.10librariesE2PROM
Несколько библиотек найдено для «GyverTimer.h»
Используется: E:SISTEMDownloadsarduino-1.8.10-windows_2020arduino-1.8.10librariesGyverTimer
exit status 1
‘class EEPROMClass’ has no member named ‘update’

kostyamat


  • #10

Замените все вызовы EEPROM.update() на EEPROM.write() должно откомпилироваться

  • #11

Теперь просто «Ошибка компиляции для платы WAVGAT NANO 3.0.»
и лог ооочень длинный
А что это вначале лога устаревшее, может изза этого ошибка?
«Внимание: platform.txt из ядра ‘Arduino AVR Boards’ содержит устаревшие recipe.ar.pattern=»{compiler.path}{compiler.ar.cmd}» {compiler.ar.flags} {compiler.ar.extra_flags} «{build.path}/{archive_file}» «{object_file}», автоматически преобразовано в recipe.ar.pattern=»{compiler.path}{compiler.ar.cmd}» {compiler.ar.flags} {compiler.ar.extra_flags} «{archive_file_path}» «{object_file}». Ожидайте обновления ядра.
C:Program Files (x86)111ArduinolibrariesGyverTM1637GyverTM1637.cpp: In member function ‘void GyverTM1637::display(uint8_t*)’:»

«

  • 10.5 KB
    Просмотры: 24

  • #12

Такое ощущение что эта программа на вавгате не заработает. У вавгата какоето несварение на библиотеки от AlexGyvera

kostyamat


  • #13

Такое ощущение что эта программа на вавгате не заработает. У вавгата какоето несварение на библиотеки от AlexGyvera

Гайвер пишет хорошо, но очень уж неаккуратно. О чем и говорит лог. К примеру: функция ожидает значения типа int, а получает byte, или возврат значения из функции типа void. Компилятор под avr такого уже «насмотрелся» и поэтому матерится, но автоматически исправляет некоторые ошибки. А для этой платы он ещё «молодой и жизни не видел». Вот поэтому такое.

Ещё раз, рекомендую удалить все, что у вас установлено под эту плату, и поставить ЭТОТ кор https://github.com/dbuezas/lgt8fx все остальное, что гуляет в сети, будет выносить вам мозг (хотя и этот кор ещё не идеален, но стремится к этому). Ставьте кор через json, он будет вовремя обновляться.
И таки включите вывод полного лога компиляции. Возможно что то, что валит компиляцию, как раз и не видно. Потому как ошибки выше, относящиеся к экрану, хоть и ошибки — но это скорее предупреждения. Если бы компилятор не знал как их исправить, он бы завалился б на первой же. А так матерится, но идёт дальше.

Изменено: 17 Янв 2020

  • #14

@kostyamat,
Спасибки большое!!! По крайней мере компилируется. и не ругается. Подскажи а частоту какую ставить. плата вавгата на 12MHz.Screenshot_14.jpg

kostyamat


  • #15

Подскажи а частоту какую ставить. плата вавгата на 12MHz

Честно говоря — я не знаю. Именно такой платы у мен не было. Кварц не стандартный. Попробуйте поставить 16МГц.

Вообще-то, этот чип очень даже неплох, в некоторых случаях он даже на много круче оригинала. Исходя из того, что энтузиасты активно делают под него кор, и на данный момент он вполне работоспособен, то брать платы на LGT8F328 можно, лично у меня есть парочка и я очень доволен ими.
Но брать рекомендую только такие как ниже, а вот Вавгат рекомендовать не могу. Там много ошибок как в схемотехнике, так и кварц тот-же странный.
Кстати, а кварц точно к микроконтроллеру подключен, а не к микросхеме UART-USB моста? Потому, как сам контроллер вообще без кварца вполне работоспособен, при чем даже на частоте 32МГц. Присмотритесь. Если кварц для моста, — ставьте любую частоту, хоть все 32МГц.

  • LGT8F328P.png

    152.4 KB
    Просмотры: 21

Изменено: 19 Янв 2020

  • #16

Кварца стоит 2 на контроллер, и на UART . Заливал блинк, при установке внешней частоты что 8м, 16м что 32м мигание идет вместо 1сек около 3сек. При установке внутренней частоты, блинк работает чётко и 8м и на 32м.
Залил прошивку будильник-рассвет, и компелировась и заливалась быстро и без ошибок. При внутренней частоте 32м, 16м работает немного глючно -подвисает, на дисплее цифры непонятные проскакивают, мигает периодически. Постабильнее работает при частоте 4м и 2м но тоже не без греха.

kostyamat


  • #17

@Ploki30, эту проблему обсуждали на форуме arduino.ru. Дело в том, что на Вавгат есть ошибка в схемотехнике. Там какая-то нога микроконтроллера висит в воздухе, а должна быть подтянута к питанию. Как результат, часть выводов выдает 3.3в вместо ожидаемых 5-ти. Некоторая периферия, рассчитанная на подключение к обычным ардуинам, и ожидающая уровень единицы близкой к 5 вольтам, работает со сбоями. Какая нога и т.п. не подскажу, не углублялся в тему.
К тому же, если помните, у вас были предупреждения об ошибках как раз с экраном. Компилятор то их исправил (на свое усмотрение), но как он это сделал, именно для этой платы, никому не известно. Вполне возможно, что для атмега он исправляет так, что все это остаётся работоспособным, а для LGT — косячит, и результат менее предсказуем.

Изменено: 20 Янв 2020

  • #18

@kostyamat, Всётаки больше проблема не изза платы вавгат, а или прошивки или библиотек, на обыкновенной собранной схеме на плате NANO, на экране будильника-рассвета, периодически вылетает билеберда .

kostyamat


  • #19

@Ploki30, вполне возможно. Я уже говорил, что скетч написан достаточно неряшливо. У автора была задача видео записать, а не чтобы работало всегда четко. В принципе это не в обиду автору скетча, все таки это у него специфика такая. К тому же, это заставляет людей, которым это нужно, пробовать себя в программировании, дабы прошивку подправить, или под себя чего-то доделать.

  • #20

Всем доброго времени суток! Помогите пожалуйста. Хочу сделать Ambilight подсветку. Но столкнулся с проблемой: не могу откомпилировать скетч. Все время ругается на библиотеку от Гайвера.
Несколько библиотек найдено для «FastLED.h»
Используется: C:Program
exit status 1
Ошибка компиляции для платы WAVGAT UNO R3.

Плата Wavgat Uno R3

  • 37.4 KB
    Просмотры: 12

  • #21

Не знаю, что там у Вас с LG8 не получается с EEPROM. Берите модуль часов с EEPROM на борту. Меняйте хоть на 256 килобитную и в путь. Она на той же шине будет висеть. И еще в нее можно все текстовые константы загнать и считывать при необходимости. А уж 32 Мгц тактовой хватит для производительности. Заодно и место во флеше освободите под программу.

Задаете массивчик временный, например char rdata[32]; в него считываете данные из EEPROM. Потом выводите куда там надо. На дисплей, в UART. Перед следующим использованием почистить.

}

char rdata[32];

readEEPROM(0x50, 0, rdata, 20);   - грузим с внешней EEPROM
Serial.println((char*)rdata);             - Выводим в UART
memset(rdata, 0, sizeof(rdata));    -Чистим память под массив


Сама функция
void readEEPROM(int deviceaddress, unsigned int eeaddress, unsigned char* data, unsigned int num_chars) {
  unsigned char i = -1;
  Wire.beginTransmission(deviceaddress);
  Wire.write((int)(eeaddress >> 8));   // MSB
  Wire.write((int)(eeaddress & 0xFF)); // LSB
  Wire.endTransmission();
  Wire.requestFrom(deviceaddress, num_chars);

  while (Wire.available()) data[i++] = Wire.read();



}

Далее вместо стандартной analogRead() используйте вот эту:

unsigned int analogRead_C(byte channel){
  ADMUX = channel; // ADC pin
  ADCSRA |= 1<<ADEN;
  ADCSRA |= 1<<ADSC;
  while(!(ADCSRA & (1<<ADIF)));
  ADCSRA |= 1<<ADIF;
  byte low  = ADCL;
  byte high = ADCH;
  ADCSRA &= ~(1 << ADEN);  // отключаем АЦП, для уменьшения энергопотребления
  return (high << 8) | low;
}

Там для оптимизации кода непаханное поле. Того глядишь еще и места полно останется свободного.

Изменено: 30 Янв 2020

  • #22

Здравствуйте.
Купил «китайскую» Arduino nano.
Драйвера установились нормально.
Прошил «Blink». Прошивка прошла успешно. Диод заморгал. Но частота моргания в 4 раза меньше, чем заданно.
Например при указании времени горения 10 секунд, светодиод горит 40 секунд.
Подскажите пожалуйста, из-за чего такое происходит и как с этим бороться?2.png

У меня arduina такая
IMG_20200130_201100.jpg
на верхнем кварце написано x 0z, на нижнем — Z0L. На какую частоту они рассчитаны я не нашел.

А как в arduino ide изменить частоту?
При выборе типа процессора предлагает 3 варианта и в них не указывается рабочая частота:
1580409774953.png

Так же при выборе платы только один вариант Arduino nano и рабочая частота не указана.

Скетч взят из примеров. Называется «Blink»
В нем изменял только время задержки.
1580410716442.png

  • 1580409656280.png

    65.5 KB
    Просмотры: 27

  • #24

@Ploki30, Чтобы эта плата адекватно работала в АВР COre надо пересобрать ее загрузчик на 16 Мгц внутреннего генератора.

  • #25

@yuryboyko, Возле кварца белым по черному написано 12 Мгц. Если дороги с кварца идут на камешек, то поменяйте на 16 Мгц. Тайминги встанут на место. Но скорее всего он на камень идет.

Hi,
I can not compile anything. Although fully complied with all the conditions specified in the file readme. The installation path is correct. All is correct, but I have error
«C:UsersKonstyantynAppDataLocalArduino15packagesarduinotoolsavr-gcc4.8.1-arduino5/bin/avr-gcc» -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_LARDU_328E -DARDUINO_ARCH_AVR «-ID:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8f» «-ID:KonstyantynDocumentsArduinohardwareLGTavrvariantslgt8fx8p» «D:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8fwiring_analog.c» -o «C:UsersKONSTY1AppDataLocalTemparduino_build_105324corewiring_analog.c.o»
«C:UsersKonstyantynAppDataLocalArduino15packagesarduinotoolsavr-gcc4.8.1-arduino5/bin/avr-gcc» -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_LARDU_328E -DARDUINO_ARCH_AVR «-ID:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8f» «-ID:KonstyantynDocumentsArduinohardwareLGTavrvariantslgt8fx8p» «D:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8fhooks.c» -o «C:UsersKONSTY1AppDataLocalTemparduino_build_105324corehooks.c.o»
«C:UsersKonstyantynAppDataLocalArduino15packagesarduinotoolsavr-gcc4.8.1-arduino5/bin/avr-gcc» -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_LARDU_328E -DARDUINO_ARCH_AVR «-ID:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8f» «-ID:KonstyantynDocumentsArduinohardwareLGTavrvariantslgt8fx8p» «D:KonstyantynDocumentsArduinohardwareLGTavrcoreslgt8fwiring_pulse.c» -o «C:UsersKONSTY~1AppDataLocalTemparduino_build_105324corewiring_pulse.c.o»
cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.

exit status 1
Ошибка компиляции для платы LGT8F328P-LQFP32 MiniEVB.

In this case, I just tried to compile one of the examples for your board.
Will there be any help from your side?

Понравилась статья? Поделить с друзьями:
  • Ошибка компиляции для платы generic stm32f103c series
  • Ошибка компиляции для платы generic esp8266 module как исправить
  • Ошибка компиляции для платы esp32 wrover module
  • Ошибка компиляции для платы esp32 dev module
  • Ошибка компиляции для платы doit esp32 devkit v1