Страница 1 из 1
Создание пользовательского блоков на языке C
Добавлено: 21 мар 2017, 18:23
AVGN
Возник такой вопрос.
В примере для библиотеки используется тип данных "double" .
А в FLProg нет double.
Или такую библиотеку невозможно применить для создания пользовательского блока?
Код примера для библиотеки:
[spoiler=Спойлер]
Код: Выделить всё
#include <AD9850.h>
//CLK - D12, FQUP - D11, BitData - D10, RESET - D13
const int W_CLK_PIN = 12;
const int FQ_UD_PIN = 11;
const int DATA_PIN = 10;
const int RESET_PIN = 13;
double freq = 1000000; // 1МГЦ
double trimFreq = 124999500;
int phase = 0;
void setup(){
DDS.begin(W_CLK_PIN, FQ_UD_PIN, DATA_PIN, RESET_PIN);
DDS.calibrate(trimFreq);
}
void loop(){
DDS.setfreq(freq, phase);
// delay(10000);
// DDS.down();
// delay(3000);
// DDS.up();
// delay(2000);
// DDS.setfreq(freq + 500, phase);
// delay(5000);
// DDS.down();
// while(1);
}
[/spoiler]
Создание пользовательского блоков на языке C
Добавлено: 21 мар 2017, 18:54
Nikan
.
Создание пользовательского блоков на языке C
Добавлено: 21 мар 2017, 19:40
AVGN
библиотеку надо переделывать и менять double на Float?
Создание пользовательского блоков на языке C
Добавлено: 21 мар 2017, 20:13
Boroda
Вот
тут так и написано. Меняем на флоат и не паримся!
Создание пользовательского блоков на языке C
Добавлено: 21 мар 2017, 20:41
AVGN
Boroda, спасибо.
Я как раз читал, только вот здесь
http://arduino.ua/ru/prog/Double
Состряпал блок. Вроде компилируется. Проверить в железе не могу. Подготовка к субботе
Посмотрите профессиональным взором. Будет работать ?
Создание пользовательского блоков на языке C
Добавлено: 21 мар 2017, 21:21
Nikan
.
Создание пользовательского блоков на языке C
Добавлено: 21 мар 2017, 22:55
Anydy
У меня с double в Flprog были проблемы, вроде потому что в Флпрог нет такой, просто заменил на флоат и все получилось!
Библиотеку не надо переделывать, БОРОДА верно сказал, меняем в блоке на флоат и не паримся!)))
Тип double поддерживается в Arduino для совместимости кода с другими платформами.
Создание пользовательского блоков на языке C
Добавлено: 22 мар 2017, 15:24
AVGN
Выявились интересные моменты при создании блока пользователя.
Сделанные входы в пользовательском блоке при компиляции в IDE появляются только в void loop().
А выходы блока появляются только в void setup()
Это правильно или что то делаю не так как надо?
Создание пользовательского блоков на языке C
Добавлено: 22 мар 2017, 15:46
Anydy
Видимо что то пошло не так)
Прикрепляйте скетч и проект...и блок...
Посмотрим....
И входы и выходы должны быть в секции declare скетча
В Loop их только используем!
Это если блок не один может быть в проекте...
Если один то и в Loop бывают обьявления...но зачем я не пойму...
Может очередной глюк)))
Создание пользовательского блоков на языке C
Добавлено: 22 мар 2017, 17:17
AVGN
Блок делал используя пример для Ардуино:
Код: Выделить всё
#include <AD9850.h>
//CLK - D12, FQUP - D11, BitData - D10, RESET - D13
const int W_CLK_PIN = 12;
const int FQ_UD_PIN = 11;
const int DATA_PIN = 10;
const int RESET_PIN = 13;
double freq = 1000000; // 1МГЦ
double trimFreq = 124999500;
int phase = 0;
void setup(){
DDS.begin(W_CLK_PIN, FQ_UD_PIN, DATA_PIN, RESET_PIN);
DDS.calibrate(trimFreq);
}
void loop(){
DDS.setfreq(freq, phase);
// delay(10000);
// DDS.down();
// delay(3000);
// DDS.up();
// delay(2000);
// DDS.setfreq(freq + 500, phase);
// delay(5000);
// DDS.down();
// while(1);
}
Проект с блоком в FLProg прицепил
Добавлено (22.03.2017, 17:17)
---------------------------------------------
Не точно выразился.
Уточнение.
Установленные константы на
входы в пользовательском блоке при компиляции в IDE появляются только в void loop().
А
выходы блока (сделанные в параметрах пользователя) появляются в void setup()
Создание пользовательского блоков на языке C
Добавлено: 22 мар 2017, 18:32
Anydy
Как то раньше замечал...что если библиотеку выгружать с именем скачанным с гитхаба, то не работает....
то есть напрмер 123-master не работает а просто 123 работает
Создание пользовательского блоков на языке C
Добавлено: 05 апр 2017, 16:17
vovka1973
Anydy писал(а):то не работает....то есть напрмер 123-master не работает а просто 123 работает
это потому что из за тире ,а если так сделать
123_master то нормально всегда
Создание пользовательского блоков на языке C
Добавлено: 05 апр 2017, 17:33
Dev1
vovka1973 писал(а):это потому что из за тире ,а если так сделать 123_master то нормально всегда
Я, наверное, что то не то делаю...
[spoiler=Спойлер][/spoiler]