Автор |
Сообщение |
|
Дата: 29 Фев 2012 19:44:57 · Поправил: feri (29 Фев 2012 22:07:41)
#
DVE
Вопрос
как вписать шестизначное число ?
т,е возможность добавить точку в тексте(точнее знак препинания) .-.-.- а также собаку .--.-.
должно быть както так #define mS. 0,1,0,1,0,1 и #define mS@ 0,1,1,0,1,0 правильно ?
ну и прийдется наверное поменять точку которая отвечает за конец текста и цикличность передачи на какой нибуть другой знак
#define SYM_LEN 5
#define mA 0,1,5,5,5
#define mB 1,0,0,0,5
#define mC 1,0,1,0,5
#define mD 1,0,0,5,5
#define mE 0,5,5,5,5
#define mF 0,0,1,0,5
#define mG 1,1,0,5,5
#define mH 0,0,0,0,5
#define mI 0,0,5,5,5
#define mJ 0,1,1,1,5
#define mK 1,0,1,5,5
#define mL 0,1,0,0,5
#define mM 1,1,5,5,5
#define mN 1,0,5,5,5
#define mO 1,1,1,5,5
#define mP 0,1,1,0,5
#define mQ 1,1,0,1,5
#define mR 0,1,0,5,5
#define mS 0,0,0,5,5
#define mT 1,5,5,5,5
#define mU 0,0,1,5,5
#define mV 0,0,0,1,5
#define mW 0,1,1,5,5
#define mX 1,0,0,1,5
#define mY 1,0,1,1,5
#define mZ 1,1,0,0,5
#define m0 1,1,1,1,1
#define m1 0,1,1,1,1
#define m2 0,0,1,1,1
#define m3 0,0,0,1,1
#define m4 0,0,0,0,1
#define m5 0,0,0,0,0
#define m6 1,0,0,0,0
#define m7 1,1,0,0,0
#define m8 1,1,1,0,0
#define m9 1,1,1,1,0
#define m_ 2,2,2,5,5
#define mSl 1,0,0,1,0
const unsigned char symbols[] = {
mSl, m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, // '/',0,1-9
m_, m_, m_, m_, m_, m_, m_, // :;<=>?@
mA, mB, mC, mD, mE, mF, mG, mH, mI, mJ, mK, mL, mM, mN, mO, mP, mQ, mR, mS, mT, mU, mV, mW, mX, mY, mZ
};
|
d71Участник
с фев 2010 Благовещенск на Амуре Сообщений: 20
|
Дата: 01 Мар 2012 15:15:58 · Поправил: d71 (01 Мар 2012 15:25:54)
#
имена mS. и mS@ использовать нельзя
можно mSDot и mSAt
вполне понятно
SYM_LEN 5 надо исправить в SYM_LEN 6
у всех символов в #defile в конце добавить ,5
например:
есть #define mA 0,1,5,5,5
надо #define mA 0,1,5,5,5,5
следовательно
#define mSDot 0,1,0,1,0,1
так как у символа "." шесть элементов
---
хотя признаю, что код целиком не видел :)
|
Реклама Google
|
|
|
Дата: 01 Мар 2012 18:37:21 · Поправил: feri (01 Мар 2012 19:30:56)
#
d71
хотя признаю, что код целиком не видел :)
здесь лежит самая последняя версия сурс кода http://dl.free.fr/cdrhrOQ0W
Компилируется нормально , ща залью и проверю
// Declare your global variables here
// 0 - "."
// 1 - "-"
// 2 - pause
// 3 - long pause
// 5 - null
#define SYM_LEN 6
#define mA 0,1,5,5,5,5
#define mB 1,0,0,0,5,5
#define mC 1,0,1,0,5,5
#define mD 1,0,0,5,5,5
#define mE 0,5,5,5,5,5
#define mF 0,0,1,0,5,5
#define mG 1,1,0,5,5,5
#define mH 0,0,0,0,5,5
#define mI 0,0,5,5,5,5
#define mJ 0,1,1,1,5,5
#define mK 1,0,1,5,5,5
#define mL 0,1,0,0,5,5
#define mM 1,1,5,5,5,5
#define mN 1,0,5,5,5,5
#define mO 1,1,1,5,5,5
#define mP 0,1,1,0,5,5
#define mQ 1,1,0,1,5,5
#define mR 0,1,0,5,5,5
#define mS 0,0,0,5,5,5
#define mT 1,5,5,5,5,5
#define mU 0,0,1,5,5,5
#define mV 0,0,0,1,5,5
#define mW 0,1,1,5,5,5
#define mX 1,0,0,1,5,5
#define mY 1,0,1,1,5,5
#define mZ 1,1,0,0,5,5
#define m0 1,1,1,1,1,5
#define m1 0,1,1,1,1,5
#define m2 0,0,1,1,1,5
#define m3 0,0,0,1,1,5
#define m4 0,0,0,0,1,5
#define m5 0,0,0,0,0,5
#define m6 1,0,0,0,0,5
#define m7 1,1,0,0,0,5
#define m8 1,1,1,0,0,5
#define m9 1,1,1,1,0,5
#define m_ 2,2,2,5,5,5
#define mSl 1,0,0,1,0,5
#define mSDot 0,1,0,1,0,1
#define mSAt 0,1,1,0,1,0
const unsigned char symbols[] = {
mSl, mSDot, mSAt, m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, // '/',0,1-9,Dot,At
m_, m_, m_, m_, m_, m_, m_, // :;<=>?@
mA, mB, mC, mD, mE, mF, mG, mH, mI, mJ, mK, mL, mM, mN, mO, mP, mQ, mR, mS, mT, mU, mV, mW, mX, mY, mZ |
|
Дата: 01 Мар 2012 19:11:18 · Поправил: feri (01 Мар 2012 19:12:09)
#
Залил в микроконтроллер, текст морзе выдает какуюто несуразицу , надо еще гдето подправлять.
|
|
Дата: 01 Мар 2012 23:01:58
#
feri
Извините, многа букафф ниасилил :) (все страницы не читал)
Помогу, чем смогу.
Вы чем транслируете? Я пользую EW23 - там принято константы, которые лежат во флешке так и описывать. Вы передаете в п/п указатель на флешь:
void morze_out(flash unsigned char *pData) {};
А переменная описана
const unsigned char phrase[] = "CQ CQ T1EST T1EST ** .";
Может, уточнить транслятору
unsigned char __flash phrase[] = "CQ CQ T1EST T1EST ** ."; (так в EW23 описываются, в Вашем видимо, как-то аналогично). Или в вашем const - это однозначно флешь? Вроде const - это константа, которая используется на этапе компиляции и в коде её уже нет, ну т.е. не лежит цельным массивом. У Вас и строка символов так же описана.
Пока дальше смотрю.
|
|
Дата: 01 Мар 2012 23:56:25 · Поправил: feri (01 Мар 2012 23:57:09)
#
Babrak
Вы чем транслируете? Я пользую EW23 - там принято константы, которые лежат во флешке так и описывать.
Спасибо за помощь , но эти исходнтки уважаемый DVE писал, первая версия была еще на второй странице . сообщение от 21 Окт 2008 17:55:19
так что чем там написано наверное лучше у автора спросить.
|
|
Дата: 02 Мар 2012 00:09:36
#
feri
Сейчас оттранслированл программу - сразу не пошла, есс-но, пришлось комментарить все порты :)
Вот так это выглядит в EW23, обратите внимание на указатели, особенно последний!!
unsigned char __flash phrase[] = "CQ CQ T1EST T1EST ** .";
unsigned char __flash symbols[] = { };
void morze_out(unsigned char __flash *pData) { };
morze_out((unsigned char __flash *)phrase);
Опишите ЯВНО все указатели - ИМНО, засада где-то там. Я Вам пишу в синтаксисе EW23, Вы пишИте, как в вашем трансляторе.
Если что - завтра продолжим, у нас уже 3 часа :(
|
d71Участник
с фев 2010 Благовещенск на Амуре Сообщений: 20
|
Дата: 02 Мар 2012 18:00:11 · Поправил: d71 (03 Мар 2012 05:50:15)
#
... с моим французским... еле нашёл как скачать, автоматом не срабатывало :)
const unsigned char phrase[] = "CQ T1EST BEACON@MAIL.RU ** ;"; //обратите внимание - вместо точки - точка с запятой для окончания передачи
#define REPEAT_DL 200
// Declare your global variables here
// 0 - "."
// 1 - "-"
// 2 - pause
// 3 - long pause
// 5 - null
#define SYM_LEN 6
#define mA 0,1,5,5,5,5
#define mB 1,0,0,0,5,5
#define mC 1,0,1,0,5,5
#define mD 1,0,0,5,5,5
#define mE 0,5,5,5,5,5
#define mF 0,0,1,0,5,5
#define mG 1,1,0,5,5,5
#define mH 0,0,0,0,5,5
#define mI 0,0,5,5,5,5
#define mJ 0,1,1,1,5,5
#define mK 1,0,1,5,5,5
#define mL 0,1,0,0,5,5
#define mM 1,1,5,5,5,5
#define mN 1,0,5,5,5,5
#define mO 1,1,1,5,5,5
#define mP 0,1,1,0,5,5
#define mQ 1,1,0,1,5,5
#define mR 0,1,0,5,5,5
#define mS 0,0,0,5,5,5
#define mT 1,5,5,5,5,5
#define mU 0,0,1,5,5,5
#define mV 0,0,0,1,5,5
#define mW 0,1,1,5,5,5
#define mX 1,0,0,1,5,5
#define mY 1,0,1,1,5,5
#define mZ 1,1,0,0,5,5
#define m0 1,1,1,1,1,5
#define m1 0,1,1,1,1,5
#define m2 0,0,1,1,1,5
#define m3 0,0,0,1,1,5
#define m4 0,0,0,0,1,5
#define m5 0,0,0,0,0,5
#define m6 1,0,0,0,0,5
#define m7 1,1,0,0,0,5
#define m8 1,1,1,0,0,5
#define m9 1,1,1,1,0,5
#define m_ 2,2,2,5,5,5
#define mAt 0,1,1,0,1,0
#define mDot 0,1,0,1,0,1
#define mSl 1,0,0,1,0,5
const unsigned char symbols[] = {
mDot, mSl, m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, // '.','/',0,1-9
m_, m_, m_, m_, m_, m_, mAt, // :;<=>?@
mA, mB, mC, mD, mE, mF, mG, mH, mI, mJ, mK, mL, mM, mN, mO, mP, mQ, mR, mS, mT, mU, mV, mW, mX, mY, mZ
};
void morze_out(flash unsigned char *pData)
{
unsigned char p, p1;
for(p=0; p<128; p++)
{
unsigned char symb = pData[p];
if (symb == ';') break; // конец передачи, раньше тут была точка
-----
дальше по текст есть unsigned int symb_code = symb - '/';
заменить на unsigned int symb_code = symb - '.';
----
пробуйте, я ещё железо не собрал :) |
|
Дата: 02 Мар 2012 19:15:56 · Поправил: Babrak (02 Мар 2012 19:18:57)
#
d71
Ребяты, вы как на С не писАли, ну зачем точка с запятой? Как вы её саму передавать собираетесь? В С (если по указателю куда попало ноль не совать :) ) строка ВСЕГДА заканчивается нулем, все библиотечные строковые функции в конце строки ставят нулевой байт.
if (!symb) break; // конец передачи, раньше тут была точка
Можете листинг трансляции посмотреть - вот эта строка
const unsigned char phrase[] = { "CQ CQ T1EST T1EST ** ." }; закончится нулевым байтом.
Так что точку можно тоже передать нормально. Сегодня залез в википедию, посмотрел кодировку Морзе - всё просто. Даже для современных эл. адресов яблоко (ухо) ввели, т.е. коммерческое ЭТ, некоторые называют собакой.
Кстати, вопрос: а почему между словами вы не делаете паузу в 7 точек? Камнями не кидайте - я не из партии радиолюбителей, я сочувствующий :)
|
|
Дата: 02 Мар 2012 19:39:45 · Поправил: Babrak (02 Мар 2012 20:04:17)
#
Забыл добавить - если вы начинаете с точки, то тогда
if (symb >= '.' && symb <= 'Z') {
unsigned int symb_code = symb - ".";
З.Ы. Написал-то всего-ничего, а уже надоело так описывать переменные. :) Добавьте, плиз, в .h такие строчки
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
Покороче станет: uint symb_code = symb - ".";
|
|
Дата: 02 Мар 2012 21:41:50
#
|
d71Участник
с фев 2010 Благовещенск на Амуре Сообщений: 20
|
Дата: 03 Мар 2012 05:53:36
#
Babrak
спасибо, не углядел про unsigned int symb_code = symb - '.';
по поводу точки с запятой в конце - так может и не грамотнее, но нагляднее для не программистов.
сам этот символ в морзянке не используется, даже в цифре редко и никогда в тексте маяка :)
|
|
Дата: 03 Мар 2012 13:49:43 · Поправил: feri (03 Мар 2012 13:59:57)
#
d71
пробуйте, я ещё железо не собрал :)
Залил вышеприведенный текст
значит так , появился знак @ на мой слух воспринимается как словосочетание VR т.е .--.-. , вроде правильно.
Точка .-.-.- не воспроизводится.
Залил сюда последнюю версию сурс кода с собачтой но пока без точки http://www.fayloobmennik.net/1612482 |
d71Участник
с фев 2010 Благовещенск на Амуре Сообщений: 20
|
Дата: 03 Мар 2012 14:15:11 · Поправил: d71 (03 Мар 2012 14:15:55)
#
feri
блин, система говорит вирусы по ссылке :(
пусть лучше на французском будет :) перезалейте, последний рывок остался, мы на правильном пути :)
|
|
Дата: 03 Мар 2012 14:21:13
#
|
d71Участник
с фев 2010 Благовещенск на Амуре Сообщений: 20
|
Дата: 03 Мар 2012 14:59:16
#
feri
замените строку if (symb >= '/' && symb <= 'Z')
на if (symb >= '.' && symb <= 'Z')
|
|
Дата: 03 Мар 2012 15:45:59 · Поправил: feri (03 Мар 2012 20:28:08)
#
d71
замените строку if (symb >= '/' && symb <= 'Z')
на if (symb >= '.' && symb <= 'Z')
Ок, все работает , спасибо.
Теперь присутствуют необходимые знаки собака @ косая / и точка .
Версию с последними модификациями залил на сервер форума Сурс код для маяка на микроконтроллере Аттини13 |
d71Участник
с фев 2010 Благовещенск на Амуре Сообщений: 20
|
Дата: 03 Мар 2012 15:54:31
#
feri
очень рад, что пригодился :)
------------
жду почтой компоненты, что бы на 74HC240 маяк поставить в квадрате PO30
А можно просто, для программистов, объяснить почему реле, а не ключи на транзисторах?
Свою платку развёл с реле, но хочется знать зачем :)
|
|
Дата: 03 Мар 2012 16:07:46 · Поправил: feri (03 Мар 2012 16:58:38)
#
d71
А можно просто, для программистов, объяснить почему реле, а не ключи на транзисторах?
Можно и транзистор поставить , релле просто для лучшего разделения ВЧ части от контроллера. А также есть и другие ньюансы и особенности схемы. В некоторых конструкциях я заменял релле на транзистор , вобщемто работает.
|
|
Дата: 03 Мар 2012 17:04:28 · Поправил: feri (03 Мар 2012 17:05:16)
#
d71
жду почтой компоненты, что бы на 74HC240 маяк поставить в квадрате PO30
схема конечно рабочая , но мне не очень понравилась, всетаки последняя версия маяка более удачная чем предыдущие.
|
|
Дата: 03 Мар 2012 19:12:47
#
Babrak
d71
Спасибо за участие.
|
|
Дата: 07 Мар 2012 03:13:22
#
Версию маяка на аттини13 считаю законченной от идеи и реализации в железе , и теперь можно занятся проектом маяка в цифре.
Seapass
INT8_NOTTY - без кварца, без терминалки, при включении играет VOICE01.WAV с карты памяти бъемом2гб(на другой не проверял).
значить наши действия
1 - записать на карточку файлик под именем VOICE01.WAV
2 - залить нужный HEX ( INT8_NOTTY) в амегу8
3 - подать питание
4 - записанный файлик начнет проигрыватся в циклическом режиме
правильно ?
|
|
Дата: 07 Мар 2012 09:55:59
#
feri
Известный тебе наш коллега уже делал PSK31 передатчик, если помнишь.
|
|
Дата: 07 Мар 2012 11:29:18
#
NBFM
Известный тебе наш коллега уже делал PSK31 передатчик, если помнишь.
Здарова , а какже конечно помню когда увидишь передай привет, и даже имею прототип его ПСК-31 передатчика. Только повторяемость схемы низкая . Вот скажи мне сколько человек повторило его схему ? Из мне известных только три , сам автор , одна версия у меня и одна сейчас в америке, ну может еще штук пять и все.
|
|
Дата: 07 Мар 2012 17:16:33
#
feri
0- отформатировать карту (обязательно!!! - три !!! означают что это нужно таки сделать)
1 - записать на карточку заранее подготовленный файлик под именем VOICE01.WAV
Самплрейт 8 или 11КГц - выше атмега при внутреннем тактировании не тянет. Рейт атмега
поймет автоматом читая его параметры из WAV файла. Длина файла не ограничена.
2 - залить нужный HEX ( INT8_NOTTY) в амегу8 - храни ее производитель...
3 - подать питание (да... карточку не забыть бы верно подкинуть, а то не заработает...)
4 - записанный файлик начнет проигрыватся в циклическом режиме
Проверенно - работает с картами 1 и 2Гб. (нашего любимого, китайского производителя... :)
|
|
Дата: 07 Мар 2012 23:19:14
#
Ребенок сегодня с садика принес шарик надутый гелием... Проявил к сыну и простите с еще большим интересом к шарику не поддельный интерес. До этого прочитал много интересных статей на сайте DARPA на тему минимизации и вот к какому выводу пришел. Если не углубляться в видео и фото со стратосферы и обвеской кучей датчиков - маячок, который сможет передавать на 10,20,40м заложенный заранее текст можно совместно с источником питания уложить примерно в 25 грамм. Для этого мероприятия хватит трех таких шариков, которые по беглым расчетам просто не дотянут до высоты разрыва и продержаться как минимум полусутки (на что и хватит питания). Расчет грубый но и результат вполне реальный и бюджетный. Как подготовлюсь к запуску - дам частоты, время итд. Хочется проверить на сколько десятки милливатт будут приниматься при высоте подвеса антенны в десятки километров. Тема таки интересная :)
|
|
Дата: 07 Мар 2012 23:33:09
#
Seapass
который сможет передавать на 10,20,40м заложенный заранее текст
какая планируется антенна ?
с источником питания уложить примерно в 25 грамм
какое питание ?
заложенный заранее текст
текст должен быть правильным , таким образом можно будет задействовать помимо слушателей еще и машины
имею ввиду авто споты от реверсбекон
Как подготовлюсь к запуску - дам частоты, время итд
если будете скидывать инфу в ходе подготовки я думаю также многим будет интересен сам процесс.
|
|
Дата: 09 Мар 2012 15:35:24
#
feri
Здарова , а какже конечно помню когда увидишь передай привет, и даже имею прототип его ПСК-31 передатчика. Только повторяемость схемы низкая . Вот скажи мне сколько человек повторило его схему ? Из мне известных только три , сам автор , одна версия у меня и одна сейчас в америке, ну может еще штук пять и все.
да, как-то никто не равался вроде особо заниматься именно PSK31 маячками.
он сам занимался и передавал с него, про остальных я и не в курсе.
так что про "повторяемость" схемы- в этой ситуации судить сложно.
|
|
Дата: 13 Мар 2012 15:32:17
#
feri
какая планируется антенна ?
Шарики вверху, к ним медный 0.25мм провод диной 5м, на конце болванка в виде маяка, далее противовес 5м с грузиком на конце. В качестве грузика можно еще один NFM маячок поставить, но уже на диапазон 70см.
какое питание ?
Пока не знаю - что такого легкого и с нужным ресурсом и так чтоб не притязательно к перепаду температуры... и чтоб дешево и не жалко было в небо отпустить.
|
|
Дата: 13 Мар 2012 15:58:37
#
Seapass
Шарики вверху, к ним медный 0.25мм провод диной 5м, на конце болванка в виде маяка, далее противовес 5м с грузиком на конце. В качестве грузика можно еще один NFM маячок поставить, но уже на диапазон 70см.
согласен.
а вот с чего такая длина взята 5 метров ? может правильней будет четверть волны взять. получится вертикальный диполь . грузик на противовесе не нужет . даже если провод будет не совсем ровным его длина сохранится . ну разве что маяк на 430 добавить
|
Реклама Google |
|