Не получается загрузить скетч

Не получается загрузить скетч.Пробую собрать генератор сигналов.Схему собрал но скетч загрузить не получается выдаёт ошибки.может кто подскажет решение .Заранее благодарен.

скетч скачал здесьhttps://github.com/TeknoTrek/Si5351-Clock-Generator-for-Arduino-Projects/tree/main пробую загрузить с помощью Trema выдаёт ошибки.

“Бывает!”(с)

А что говорит. Можете скопипастить окно сообщений об ошибках?
Только, умоляю - никаких скриншотов - копипаста текстом!

вот какие ошибки выдаёт

H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:40:5: error: expected constructor, destructor, or type conversion before ‘(’ token
40 | ISR(PCINT2_vect) {
| ^
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:40:4: error: expected constructor, destructor, or type conversion before ‘(’ token
40 | ISR(PCINT2_vect) {
| ^
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:56:6: error: redefinition of ‘void setup()’
56 | void setup() {
| ^~~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Teknotrek.ino:3:6: note: ‘void setup()’ previously defined here
3 | void setup() {
| ^~~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino: In function ‘void setup()’:
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:75:3: error: ‘PCICR’ was not declared in this scope
75 | PCICR |= (1 << PCIE2);
| ^~~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:75:18: error: ‘PCIE2’ was not declared in this scope
75 | PCICR |= (1 << PCIE2);
| ^~~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:76:3: error: ‘PCMSK2’ was not declared in this scope
76 | PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
| ^~~~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:76:19: error: ‘PCINT18’ was not declared in this scope
76 | PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
| ^~~~~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:76:36: error: ‘PCINT19’ was not declared in this scope
76 | PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
| ^~~~~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:77:3: error: ‘sei’ was not declared in this scope
77 | sei();
| ^~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino: At global scope:
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:85:6: error: redefinition of ‘void loop()’
85 | void loop() {
| ^~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Teknotrek.ino:8:6: note: ‘void loop()’ previously defined here
8 | void loop() {
| ^~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino: In function ‘void displayfreq()’:
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:118:47: warning: repeated ‘0’ flag in format [-Wformat=]
118 | display.setCursor(41, 1); sprintf(buffer, “%003d.%003d”, k, h);
| ^~~~~~~~~~~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:118:47: warning: repeated ‘0’ flag in format [-Wformat=]
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:121:46: warning: repeated ‘0’ flag in format [-Wformat=]
121 | display.setCursor(5, 1); sprintf(buffer, “%2d.%003d.%003d”, m, k, h);
| ^~~~~~~~~~~~~~~~~
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:121:46: warning: repeated ‘0’ flag in format [-Wformat=]
H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:125:46: warning: repeated ‘0’ flag in format [-Wformat=]
125 | display.setCursor(5, 1); sprintf(buffer, “%2d.%003d.%02d”, m, k, h);

Исправились. Ладно.

  1. Это не полный текст. Самого важного нет. Скопируйте целиком, от первой строчки до последней.
  2. Эти сообщения не от того кода, ссылку на который Вы привели. Там нет части ошибок, которые есть здесь. Вы что-то меняли в коде и напихали туда ошибки, которых там не было.

Пожалуйста, выложите ВАШ код копипастой из IDE (только для начала посмотрите в пустом окне сообщения как правильно вставить код. Вставите без номеров строк - сами себе злобный буратино). И к коде полный текст сообщений об ошибках.

/********************************************************************************************************

Si5351 Clock Generator for Arduino Projects

YouTube Channel: https://www.youtube.com/@TeknoTrek

10kHz to 135MHz Clock Generator with Si5351 and Arduino Nano, with Intermediate Frequency (IF)
offset (+ or -)
*********************************************************************************************************/

//Libraries
#include <Wire.h> //IDE Standard
#include <Rotary.h> //H:\FreeSoft\Arduino IDE\Проект Teknotrek
#include <si5351.h> //H:\FreeSoft\Arduino IDE\Проект Teknotrek
#include <Adafruit_GFX.h> //H:\FreeSoft\Arduino IDE\Проект Teknotrek
#include <Adafruit_SSD1306.h> //H:\FreeSoft\Arduino IDE\Проект Teknotrek

//User preferences
//------------------------------------------------------------------------------------------------------------
#define IF 0 //Enter your IF frequency, ex: 455 = 455kHz, 10700 = 10.7MHz, 0 = to direct convert receiver or RF generator, + will add and - will subtract IF offfset.
#define FREQ_INIT 10000000 //Enter your initial frequency at startup, ex: 7000000 = 7MHz, 10000000 = 10MHz, 840000 = 840kHz.
#define XT_CAL_F 280000 //Si5351 calibration factor, adjust to get exatcly 10MHz. Increasing this value will decreases the frequency and vice versa.
#define tunestep A0 //Change the pin used by encoder push button if you want.
//------------------------------------------------------------------------------------------------------------

Rotary r = Rotary(2, 3);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
Si5351 si5351;

unsigned long freq = FREQ_INIT;
unsigned long freqold, fstep;
long interfreq = IF;
long cal = XT_CAL_F;
unsigned long long pll_freq = 90000000000ULL;
byte encoder = 1;
byte stp;
unsigned int period = 100; //millis display active
unsigned long time_now = 0; //millis display active

ISR(PCINT2_vect) {
char result = r.process();
if (result == DIR_CW) set_frequency(1);
else if (result == DIR_CCW) set_frequency(-1);
}

void set_frequency(short dir) {
if (encoder == 1) { //Up/Down frequency
if (dir == 1) freq = freq + fstep;
if (freq >= 135000000) freq = 135000000;
if (dir == -1) freq = freq - fstep;
if (fstep == 1000000 && freq <= 1000000) freq = 1000000;
else if (freq < 10000) freq = 10000;
}
}

void setup() {
Wire.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(WHITE);
display.display();

pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(tunestep, INPUT_PULLUP);

statup_text();

si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, cal);
si5351.output_enable(SI5351_CLK0, 1); //1 - Enable / 0 - Disable CLK
si5351.output_enable(SI5351_CLK1, 0);
si5351.output_enable(SI5351_CLK2, 0);
si5351.drive_strength(SI5351_CLK0, SI5351_DRIVE_2MA); //Output current 2MA, 4MA, 6MA or 8MA

PCICR |= (1 << PCIE2);
PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
sei();

stp = 3;
setstep();
layout();
displayfreq();
}

void loop() {
if (freqold != freq) {
time_now = millis();
tunegen();
freqold = freq;
}

if (digitalRead(tunestep) == LOW) {
time_now = (millis() + 300);
setstep();
delay(300);
}

if ((time_now + period) > millis()) {
displayfreq();
layout();
}
}

void tunegen() {
si5351.set_freq_manual((freq + (interfreq * 1000ULL)) * 100ULL, pll_freq, SI5351_CLK0);
}

void displayfreq() {
unsigned int m = freq / 1000000;
unsigned int k = (freq % 1000000) / 1000;
unsigned int h = (freq % 1000) / 1;

display.clearDisplay();
display.setTextSize(2);

char buffer[15] = “”;
if (m < 1) {
display.setCursor(41, 1); sprintf(buffer, “%003d.%003d”, k, h);
}
else if (m < 100) {
display.setCursor(5, 1); sprintf(buffer, “%2d.%003d.%003d”, m, k, h);
}
else if (m >= 100) {
unsigned int h = (freq % 1000) / 10;
display.setCursor(5, 1); sprintf(buffer, “%2d.%003d.%02d”, m, k, h);
}
display.print(buffer);
}

void setstep() {
switch (stp) {
case 1:
stp = 2;
fstep = 1;
break;
case 2:
stp = 3;
fstep = 10;
break;
case 3:
stp = 4;
fstep = 1000;
break;
case 4:
stp = 5;
fstep = 5000;
break;
case 5:
stp = 6;
fstep = 10000;
break;
case 6:
stp = 7;
fstep = 1000000;
break;
case 7:
stp = 1;
fstep = 10000000;
break;
}
}

void layout() {
display.setTextColor(WHITE);
display.drawLine(0, 20, 127, 20, WHITE);
display.drawLine(0, 43, 127, 43, WHITE);
display.drawLine(105, 24, 105, 39, WHITE);
display.setTextSize(2);
display.setCursor(2, 25);
display.print(“ST:”);

if (stp == 2) display.print(“1Hz”);
if (stp == 3) display.print(“10Hz”);
if (stp == 4) display.print(“1KHz”);
if (stp == 5) display.print(“5KHz”);
if (stp == 6) display.print(“10KHz”);
if (stp == 7) display.print(“1MHz”);
if (stp == 1) display.print(“10MHz”);

display.setCursor(2, 48);
display.print(“IF:”);
display.print(interfreq);
display.print(" KHz");
display.setTextSize(1);
display.setCursor(110, 23);
if (freq < 1000000) display.print(“KHz”);
if (freq >= 1000000) display.print(“MHz”);
display.setCursor(110, 33);
if (interfreq == 0) display.print(“VFO”);
if (interfreq != 0) display.print(“L O”);
display.display();
}

void statup_text() {
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(28, 4);
display.print(“Si5351”);
display.setTextSize(1);
display.setCursor(18, 25);
display.print(“Clock Generator”);
display.setTextSize(2);
display.setCursor(8, 40);
display.print(“TEKNOTREK”);
display.display();
delay(3000);
display.clearDisplay();
}

Вы испытываете моё терпение? Я же Вам написал

Давайте вставляйте код нормально, если не хотите получить ответ типа “уберите запятую в строке ХЗ”.

Дико извиняюсь за моё невежество в зтом вопросе сейчас попробую.

/********************************************************************************************************

Si5351 Clock Generator for Arduino Projects

YouTube Channel: https://www.youtube.com/@TeknoTrek

10kHz to 135MHz Clock Generator with Si5351 and Arduino Nano, with Intermediate Frequency (IF)
offset (+ or -)
*********************************************************************************************************/

//Libraries
#include <Wire.h> //IDE Standard
#include <Rotary.h> //H:\FreeSoft\Arduino IDE\Проект Teknotrek
#include <si5351.h> //H:\FreeSoft\Arduino IDE\Проект Teknotrek
#include <Adafruit_GFX.h> //H:\FreeSoft\Arduino IDE\Проект Teknotrek
#include <Adafruit_SSD1306.h> //H:\FreeSoft\Arduino IDE\Проект Teknotrek

//User preferences
//------------------------------------------------------------------------------------------------------------
#define IF 0 //Enter your IF frequency, ex: 455 = 455kHz, 10700 = 10.7MHz, 0 = to direct convert receiver or RF generator, + will add and - will subtract IF offfset.
#define FREQ_INIT 10000000 //Enter your initial frequency at startup, ex: 7000000 = 7MHz, 10000000 = 10MHz, 840000 = 840kHz.
#define XT_CAL_F 280000 //Si5351 calibration factor, adjust to get exatcly 10MHz. Increasing this value will decreases the frequency and vice versa.
#define tunestep A0 //Change the pin used by encoder push button if you want.
//------------------------------------------------------------------------------------------------------------

Rotary r = Rotary(2, 3);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
Si5351 si5351;

unsigned long freq = FREQ_INIT;
unsigned long freqold, fstep;
long interfreq = IF;
long cal = XT_CAL_F;
unsigned long long pll_freq = 90000000000ULL;
byte encoder = 1;
byte stp;
unsigned int period = 100; //millis display active
unsigned long time_now = 0; //millis display active

ISR(PCINT2_vect) {
char result = r.process();
if (result == DIR_CW) set_frequency(1);
else if (result == DIR_CCW) set_frequency(-1);
}

void set_frequency(short dir) {
if (encoder == 1) { //Up/Down frequency
if (dir == 1) freq = freq + fstep;
if (freq >= 135000000) freq = 135000000;
if (dir == -1) freq = freq - fstep;
if (fstep == 1000000 && freq <= 1000000) freq = 1000000;
else if (freq < 10000) freq = 10000;
}
}

void setup() {
Wire.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(WHITE);
display.display();

pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(tunestep, INPUT_PULLUP);

statup_text();

si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, cal);
si5351.output_enable(SI5351_CLK0, 1); //1 - Enable / 0 - Disable CLK
si5351.output_enable(SI5351_CLK1, 0);
si5351.output_enable(SI5351_CLK2, 0);
si5351.drive_strength(SI5351_CLK0, SI5351_DRIVE_2MA); //Output current 2MA, 4MA, 6MA or 8MA

PCICR |= (1 << PCIE2);
PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
sei();

stp = 3;
setstep();
layout();
displayfreq();
}

void loop() {
if (freqold != freq) {
time_now = millis();
tunegen();
freqold = freq;
}

if (digitalRead(tunestep) == LOW) {
time_now = (millis() + 300);
setstep();
delay(300);
}

if ((time_now + period) > millis()) {
displayfreq();
layout();
}
}

void tunegen() {
si5351.set_freq_manual((freq + (interfreq * 1000ULL)) * 100ULL, pll_freq, SI5351_CLK0);
}

void displayfreq() {
unsigned int m = freq / 1000000;
unsigned int k = (freq % 1000000) / 1000;
unsigned int h = (freq % 1000) / 1;

display.clearDisplay();
display.setTextSize(2);

char buffer[15] = “”;
if (m < 1) {
display.setCursor(41, 1); sprintf(buffer, “%003d.%003d”, k, h);
}
else if (m < 100) {
display.setCursor(5, 1); sprintf(buffer, “%2d.%003d.%003d”, m, k, h);
}
else if (m >= 100) {
unsigned int h = (freq % 1000) / 10;
display.setCursor(5, 1); sprintf(buffer, “%2d.%003d.%02d”, m, k, h);
}
display.print(buffer);
}

void setstep() {
switch (stp) {
case 1:
stp = 2;
fstep = 1;
break;
case 2:
stp = 3;
fstep = 10;
break;
case 3:
stp = 4;
fstep = 1000;
break;
case 4:
stp = 5;
fstep = 5000;
break;
case 5:
stp = 6;
fstep = 10000;
break;
case 6:
stp = 7;
fstep = 1000000;
break;
case 7:
stp = 1;
fstep = 10000000;
break;
}
}

void layout() {
display.setTextColor(WHITE);
display.drawLine(0, 20, 127, 20, WHITE);
display.drawLine(0, 43, 127, 43, WHITE);
display.drawLine(105, 24, 105, 39, WHITE);
display.setTextSize(2);
display.setCursor(2, 25);
display.print(“ST:”);

if (stp == 2) display.print(“1Hz”);
if (stp == 3) display.print(“10Hz”);
if (stp == 4) display.print(“1KHz”);
if (stp == 5) display.print(“5KHz”);
if (stp == 6) display.print(“10KHz”);
if (stp == 7) display.print(“1MHz”);
if (stp == 1) display.print(“10MHz”);

display.setCursor(2, 48);
display.print(“IF:”);
display.print(interfreq);
display.print(" KHz");
display.setTextSize(1);
display.setCursor(110, 23);
if (freq < 1000000) display.print(“KHz”);
if (freq >= 1000000) display.print(“MHz”);
display.setCursor(110, 33);
if (interfreq == 0) display.print(“VFO”);
if (interfreq != 0) display.print(“L O”);
display.display();
}

void statup_text() {
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(28, 4);
display.print(“Si5351”);
display.setTextSize(1);
display.setCursor(18, 25);
display.print(“Clock Generator”);
display.setTextSize(2);
display.setCursor(8, 40);
display.print(“TEKNOTREK”);
display.display();
delay(3000);
display.clearDisplay();
}

И, кстати, сообщения лучше тоже вставить как код, чтобы были номера строк, а то сообщений много. Так будет намного легче обсуждать, ссылаясь на конкретные строки.

Давайте Ваш код (только именно тот, что компилируете!!!) и сообщения компилятора. Вставляйте

H:\FreeSoft\Arduino IDE\Проект\Teknotrek\Si5351_Clock_Generator.ino:16:10: fatal error: Adafruit_SSD1306.h: No such file or directory
compilation terminated.
exit status 1

Compilation error: Adafruit_SSD1306.h: No such file or directory

urypetrov вы так и не скинули код, что бы его было удобно скопировать, и вставить, и указать на строки с ошибками а ошибок может быть и 10 даже

/********************************************************************************************************

  Si5351 Clock Generator for Arduino Projects

  YouTube Channel: https://www.youtube.com/@TeknoTrek

  10kHz to 135MHz Clock Generator with Si5351 and Arduino Nano, with Intermediate Frequency (IF)
  offset (+ or -)
*********************************************************************************************************/

//Libraries
#include <Wire.h>                 //IDE Standard
#include <Rotary.h>               //H:\FreeSoft\Arduino IDE\Проект  Teknotrek
#include <si5351.h>               //H:\FreeSoft\Arduino IDE\Проект  Teknotrek
#include <Adafruit_GFX.h>         //H:\FreeSoft\Arduino IDE\Проект  Teknotrek
#include <Adafruit_SSD1306.h>     //H:\FreeSoft\Arduino IDE\Проект  Teknotrek

//User preferences
//------------------------------------------------------------------------------------------------------------
#define IF  0                //Enter your IF frequency, ex: 455 = 455kHz, 10700 = 10.7MHz, 0 = to direct convert receiver or RF generator, + will add and - will subtract IF offfset.
#define FREQ_INIT  10000000   //Enter your initial frequency at startup, ex: 7000000 = 7MHz, 10000000 = 10MHz, 840000 = 840kHz.
#define XT_CAL_F   280000          //Si5351 calibration factor, adjust to get exatcly 10MHz. Increasing this value will decreases the frequency and vice versa.
#define tunestep   A0        //Change the pin used by encoder push button if you want.
//------------------------------------------------------------------------------------------------------------

Rotary r = Rotary(2, 3);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
Si5351 si5351;

unsigned long freq = FREQ_INIT;
unsigned long freqold, fstep;
long interfreq = IF;
long cal = XT_CAL_F;
unsigned long long pll_freq = 90000000000ULL;
byte encoder = 1;
byte stp;
unsigned int period = 100;   //millis display active
unsigned long time_now = 0;  //millis display active

ISR(PCINT2_vect) {
  char result = r.process();
  if (result == DIR_CW) set_frequency(1);
  else if (result == DIR_CCW) set_frequency(-1);
}

void set_frequency(short dir) {
  if (encoder == 1) {  //Up/Down frequency
    if (dir == 1) freq = freq + fstep;
    if (freq >= 135000000) freq = 135000000;
    if (dir == -1) freq = freq - fstep;
    if (fstep == 1000000 && freq <= 1000000) freq = 1000000;
    else if (freq < 10000) freq = 10000;
  }
}

void setup() {
  Wire.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.display();

  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(tunestep, INPUT_PULLUP);

  statup_text();

  si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, cal);
  si5351.output_enable(SI5351_CLK0, 1);  //1 - Enable / 0 - Disable CLK
  si5351.output_enable(SI5351_CLK1, 0);
  si5351.output_enable(SI5351_CLK2, 0);
  si5351.drive_strength(SI5351_CLK0, SI5351_DRIVE_2MA);  //Output current 2MA, 4MA, 6MA or 8MA

  PCICR |= (1 << PCIE2);
  PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
  sei();

  stp = 3;
  setstep();
  layout();
  displayfreq();
}

void loop() {
  if (freqold != freq) {
    time_now = millis();
    tunegen();
    freqold = freq;
  }

  if (digitalRead(tunestep) == LOW) {
    time_now = (millis() + 300);
    setstep();
    delay(300);
  }

  if ((time_now + period) > millis()) {
    displayfreq();
    layout();
  }
}

void tunegen() {
  si5351.set_freq_manual((freq + (interfreq * 1000ULL)) * 100ULL, pll_freq, SI5351_CLK0);
}

void displayfreq() {
  unsigned int m = freq / 1000000;
  unsigned int k = (freq % 1000000) / 1000;
  unsigned int h = (freq % 1000) / 1;

  display.clearDisplay();
  display.setTextSize(2);

  char buffer[15] = "";
  if (m < 1) {
    display.setCursor(41, 1); sprintf(buffer, "%003d.%003d", k, h);
  } else if (m < 100) {
    display.setCursor(5, 1); sprintf(buffer, "%2d.%003d.%003d", m, k, h);
  } else if (m >= 100) {
    unsigned int h = (freq % 1000) / 10;
    display.setCursor(5, 1); sprintf(buffer, "%2d.%003d.%02d", m, k, h);
  }
  display.print(buffer);
}

void setstep() {
  switch (stp) {
    case 1:
      stp = 2;
      fstep = 1;
      break;
    case 2:
      stp = 3;
      fstep = 10;
      break;
    case 3:
      stp = 4;
      fstep = 1000;
      break;
    case 4:
      stp = 5;
      fstep = 5000;
      break;
    case 5:
      stp = 6;
      fstep = 10000;
      break;
    case 6:
      stp = 7;
      fstep = 1000000;
      break;
    case 7:
      stp = 1;
      fstep = 10000000;
      break;
  }
}

void layout() {
  display.setTextColor(WHITE);
  display.drawLine(0, 20, 127, 20, WHITE);
  display.drawLine(0, 43, 127, 43, WHITE);
  display.drawLine(105, 24, 105, 39, WHITE);
  display.setTextSize(2);
  display.setCursor(2, 25);
  display.print("ST:");

  if (stp == 2) display.print("1Hz");
  if (stp == 3) display.print("10Hz");
  if (stp == 4) display.print("1KHz");
  if (stp == 5) display.print("5KHz");
  if (stp == 6) display.print("10KHz");
  if (stp == 7) display.print("1MHz");
  if (stp == 1) display.print("10MHz");

  display.setCursor(2, 48);
  display.print("IF:");
  display.print(interfreq);
  display.print(" KHz");
  display.setTextSize(1);
  display.setCursor(110, 23);
  if (freq < 1000000) display.print("KHz");
  if (freq >= 1000000) display.print("MHz");
  display.setCursor(110, 33);
  if (interfreq == 0) display.print("VFO");
  if (interfreq != 0) display.print("L O");
  display.display();
}

void statup_text() {
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(28, 4);
  display.print("Si5351");
  display.setTextSize(1);
  display.setCursor(18, 25);
  display.print("Clock Generator");
  display.setTextSize(2);
  display.setCursor(8, 40);
  display.print("TEKNOTREK");
  display.display();
  delay(3000);
  display.clearDisplay();
}

останавливается на 40 строке

1) надо добавить
#include <avr/io.h>
#include <avr/interrupt.h>
2) какая версия библиотеки  Adafruit_SSD1306 ?
3) sprintf с %003d наверное не верно и надо сделать так %03d
4) скет в папке Teknotrek должен быть только 1 с окончанием .ino

попробуйте исправить это и скинуть новый код и лог ошибок, может еще что подскажут…

Этой фразы я не понял. Вы можете дать полный текст сообщений?

Если в посте №12 и есть полный текст, то причём тут 40-ая строка? Там написано, что у Вас не установлена библиотека Adafruit_SSD1306. В исходном тексте (ссылку на который Вы давали выше) в комментарии к стр. 16 написно откуда её можно скачать. Вот скачайте и поставьте.

После того, как поставите, это сообщение должно уйти, но появятся новые. И снова, выкладывайте

  1. Полный код (даже, если не меняли)
  2. Полный текст всех сообщений (желательно тоже с номерами строк, как код).

Без этого у нас разговора не будет, я не могу обсуждать то, чего не вижу.

Зачем? Всё это уже включено в среде Ардуино. Не говорите, чего не знаете.

@urypetrov, ставьте библиотеку из той ссылки что была в исходном коде.

И, да, скажите, зачем Вы вносите изменения в код, который скачали? Что-то хотите изменить? Так добейтесь сначала, чтобы он заработал как есть, а потом уж меняйте. Там код, конечно, “не образец”, но вполне компилируемый, зачем Вы его гробите своими изменениями?


Спасибо попробую. Снесу всё что скачал и загружу по новой.

я допускаю что ошибаюсь, но на факт! из за того что допускаю что автоматика для меня враг, и лучше указать явно…
возможная причина в макросе ISR(PCINT2_vect) но это не точно!)))

и правда скомпилировался код с первого раза после установки )))

#include <Rotary.h>
#include <si5351.h>

Когда будете знать точно, тогда и выскажетесь, не захламляйте тему.