Не получается загрузить скетч.Пробую собрать генератор сигналов.Схему собрал но скетч загрузить не получается выдаёт ошибки.может кто подскажет решение .Заранее благодарен.
скетч скачал здесь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);
Исправились. Ладно.
- Это не полный текст. Самого важного нет. Скопируйте целиком, от первой строчки до последней.
- Эти сообщения не от того кода, ссылку на который Вы привели. Там нет части ошибок, которые есть здесь. Вы что-то меняли в коде и напихали туда ошибки, которых там не было.
Пожалуйста, выложите ВАШ код копипастой из 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 написно откуда её можно скачать. Вот скачайте и поставьте.
После того, как поставите, это сообщение должно уйти, но появятся новые. И снова, выкладывайте
- Полный код (даже, если не меняли)
- Полный текст всех сообщений (желательно тоже с номерами строк, как код).
Без этого у нас разговора не будет, я не могу обсуждать то, чего не вижу.
Зачем? Всё это уже включено в среде Ардуино. Не говорите, чего не знаете.
@urypetrov, ставьте библиотеку из той ссылки что была в исходном коде.
И, да, скажите, зачем Вы вносите изменения в код, который скачали? Что-то хотите изменить? Так добейтесь сначала, чтобы он заработал как есть, а потом уж меняйте. Там код, конечно, “не образец”, но вполне компилируемый, зачем Вы его гробите своими изменениями?
Спасибо попробую. Снесу всё что скачал и загружу по новой.
я допускаю что ошибаюсь, но на факт! из за того что допускаю что автоматика для меня враг, и лучше указать явно…
возможная причина в макросе ISR(PCINT2_vect) но это не точно!)))
и правда скомпилировался код с первого раза после установки )))
#include <Rotary.h>
#include <si5351.h>
Когда будете знать точно, тогда и выскажетесь, не захламляйте тему.

