Ну дык я не запрещал вроде, однако без аргументов как то не комильфо :)
я тут недавно выкладывал, на что тут можно delay заменить?
void saveCurrentPage(void) {
if (!wakeDevice()) return; // если фельшер вырвал провода из устройства, уходим
Wire.beginTransmission(FDevAddr); // иначе
Wire.write(uint8_t(FCache.CurrentPage >> 4)); // пхаем старший байт адреса, куда будем писАть
Wire.write(uint8_t(FCache.CurrentPage << 4)); // потом пхаем млатший
Wire.write(FCache.Buffer, ROM_CACHE_SIZE); // сохраняем всё из буфера в ROM
Wire.endTransmission(); // не проверяя на ошибки
delay(10); // иначе не запишеца.
FCache.Modified = false; // ставим признак, что страница не модифицирована (сохранена)
}
//ТАБЛИЦА ГЕНЕРАЦИИ БУКВЫ АЗБУКИ МОРЗЕ
// ''
// 0 1 2 3 4 5 6 7 8 9
// A B C D E F G H I J
// K L M N O P Q R S T
// U V W X Y Z
// описание буквы 0-точка, 1 -тире
const PROGMEM uint8_t morseCode[]={B10000000,
B00000100,B00001100,B00011100,B00111100,B01111100,B11111100,B11110100,B11100100,B11000100,B10000100,
B01100000,B11101000,B10101000,B11010000,B11000000,B10111000,B10010000,B11111000,B11100000,B00011000,
B01010000,B11011000,B00100000,B10100000,B00010000,B10011000,B01001000,B10110000,B11110000,B01000000,
B01110000,B01111000,B00110000,B01101000,B00101000,B11001000};
// секвенция по символу
uint8_t getMorzeSeq(char in) {
uint8_t till = 0;
if (in < '0') {
//...
} else if (in <= '9') {
till = in - 0x2F; // если цифра , то корректируем на 0x2F;
} else if (in < 'A') {
//...
} else if (in <= 'Z') {
till = in - 0x36; // заглавные буквы до Z, в нашей таблице с 11 до 37
} else if (in < 'a') {
// ...
} else if (in <= 'z') {
till = in - 0x56; // маленькие, передаем как заглавные буквы до z, в нашей таблице с 11 до 37
}
return pgm_read_byte_near(morseCode+till);
}
void sendBeacon(char* _thePhrase) {
while (*_thePhrase) {
if (*_thePhrase==' '){
delay(3*DOTLEN);
} else {
uint8_t buff=getMorzeSeq(*_thePhrase);
uint8_t mask=1;
while(!(buff & mask)){
mask<<=1;
}
mask<<=1;
while(mask){
(buff & mask) ? dot() : dash();
mask<<=1;
}
break;
}
_thePhrase++;
delay(2*DOTLEN);
}
}
Запилил и на этой базе скетч в теме про Маяк, в проектах, да где-то что-то видимо ошибся, на символ U возвращает 0х92 пиликает и затыкается, может посмотрите опытным глазом, Вариант 2
я тут недавно выкладывал, на что тут можно delay заменить?
void saveCurrentPage(void) {
if (!wakeDevice()) return; // если фельшер вырвал провода из устройства, уходим
Wire.beginTransmission(FDevAddr); // иначе
Wire.write(uint8_t(FCache.CurrentPage >> 4)); // пхаем старший байт адреса, куда будем писАть
Wire.write(uint8_t(FCache.CurrentPage << 4)); // потом пхаем млатший
Wire.write(FCache.Buffer, ROM_CACHE_SIZE); // сохраняем всё из буфера в ROM
Wire.endTransmission(); // не проверяем на ошибки
delay(15); // иначе не запишеца.
FCache.Modified = false; // ставим признак, что страница не модифицирована (сохранена)
}
Вам формальный ответ или так... Я уже два варианта привел выше, однако могу еще, правда это зависит от причин того почему "иначе не запишется". Ну например так:
void saveCurrentPage(void) {
if (!wakeDevice()) return; // если фельшер вырвал провода из устройства, уходим
static uint32_t timer=0;
while(timer-millis()<15);
Wire.beginTransmission(FDevAddr); // иначе
Wire.write(uint8_t(FCache.CurrentPage >> 4)); // пхаем старший байт адреса, куда будем писАть
Wire.write(uint8_t(FCache.CurrentPage << 4)); // потом пхаем млатший
Wire.write(FCache.Buffer, ROM_CACHE_SIZE); // сохраняем всё из буфера в ROM
Wire.endTransmission(); // не проверяем на ошибки
timer=millis();
FCache.Modified = false; // ставим признак, что страница не модифицирована (сохранена)
}
я тут недавно выкладывал, на что тут можно delay заменить?
void saveCurrentPage(void) {
if (!wakeDevice()) return; // если фельшер вырвал провода из устройства, уходим
Wire.beginTransmission(FDevAddr); // иначе
Wire.write(uint8_t(FCache.CurrentPage >> 4)); // пхаем старший байт адреса, куда будем писАть
Wire.write(uint8_t(FCache.CurrentPage << 4)); // потом пхаем млатший
Wire.write(FCache.Buffer, ROM_CACHE_SIZE); // сохраняем всё из буфера в ROM
Wire.endTransmission(); // не проверяем на ошибки
delay(15); // иначе не запишеца.
FCache.Modified = false; // ставим признак, что страница не модифицирована (сохранена)
}
Вам формальный ответ или так... Я уже два варианта привел выше, однако могу еще, правда это зависит от причин того почему "иначе не запишется". Ну например так:
void saveCurrentPage(void) {
if (!wakeDevice()) return; // если фельшер вырвал провода из устройства, уходим
static uint32_t timer=0;
while(timer-millis()<15);
Wire.beginTransmission(FDevAddr); // иначе
Wire.write(uint8_t(FCache.CurrentPage >> 4)); // пхаем старший байт адреса, куда будем писАть
Wire.write(uint8_t(FCache.CurrentPage << 4)); // потом пхаем млатший
Wire.write(FCache.Buffer, ROM_CACHE_SIZE); // сохраняем всё из буфера в ROM
Wire.endTransmission(); // не проверяем на ошибки
timer=millis();
FCache.Modified = false; // ставим признак, что страница не модифицирована (сохранена)
}
там не только запись страдает, но и чтения не должно быть в течение 10 мс записи. Вопщем, вместо того, чтобы городить флаг Busy в классе, проще deley-eм подождать 10 мс.
Запилил и на этой базе скетч в теме про Маяк, в проектах, да где-то что-то видимо ошибся, на символ U возвращает 0х92 пиликает и затыкается, может посмотрите опытным глазом, Вариант 2
я одно скажу, программы людей, более взрослых, чем я, особенно функции инициализации разных дисплеев, от AdaFruit, UTFT, да той же LiquidCrystal, набиты delay-ями чуть менее, чем полностью, и както ничо. Каждому овощу - своё применение.
там не только запись страдает, но и чтения не должно быть в течение 10 мс записи. Вопщем, вместо того, чтобы городить флаг Busy в классе, проще deley-eм подождать 10 мс.
Ну сами же понимаете, чем можно заменить :) Флажком, зато при флажке получите лишние миллисекунды, которые гарантировано открутились бы в делее.
Но я не параноик :) Речь идет о вот таких теневых задачах, как трансляция морзе с одновременном наборе фразы с клавиатуры. Да и разница между 15 мс и 0.25 сек ощутима, согласитесь. Кроме того в вашем случае, по сути вы ничего другого делать не можете, по объективным причинам, "фича" внешнего флеша. А тут в маяке это какая причина ?
Но есть у меня подозрение, что у вашей микросхемы есть флажек занятости, который просто нужно проверять. И тогда вы с делеем тут, тоже не правы :)
Ну сами же понимаете, чем можно заменить :) Флажком, зато при флажке получите лишние миллисекунды, которые гарантировано открутились бы в делее.
Но я не параноик :) Речь идет о вот таких теневых задачах, как трансляция морзе с одновременном наборе фразы с клавиатуры. Да и разница между 15 мс и 0.25 сек ощутима, согласитесь. Кроме того в вашем случае, по сути вы ничего другого делать не можете, по объективным причинам, "фича" внешнего флеша. А тут в маяке это какая причина ?
Но есть у меня подозрение, что у вашей микросхемы есть флажек занятости, который просто нужно проверять. И тогда вы с делеем тут, тоже не правы :)
Меня можно на "ты", я смольных не кончал. :)
ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет.
Ну это я так. Что бы никого не обидеь :) Поскольку, иногда, использую обращение на "ты", к одному персонажу, который очень злится этому действу и продолжает "очищать си".
ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет.
ХОЧУ
Поразбираюсь. На выходных я буду нетрезв вхлам, канеш, а вот на след. неделе мне будет нечем заняца, паматрю.
Это может понадобится для другого проекта, клавиатурный датчик кода морзе, но там наверное лучше 32U4 использовать, чтобы USB клавиатуру подцепить можно было
Строка 48 "break;" - удалить нахрен, остаток от старой реализации с "тупым поиском", проглядел.
Впрочем, вот вариант с "защитой от косяков"
//ТАБЛИЦА ГЕНЕРАЦИИ БУКВЫ АЗБУКИ МОРЗЕ
// ''
// 0 1 2 3 4 5 6 7 8 9
// A B C D E F G H I J
// K L M N O P Q R S T
// U V W X Y Z
// описание буквы 0-точка, 1 -тире
const PROGMEM uint8_t morseCode[]={B00000000,
B00000100,B00001100,B00011100,B00111100,B01111100,B11111100,B11110100,B11100100,B11000100,B10000100,
B01100000,B11101000,B10101000,B11010000,B11000000,B10111000,B10010000,B11111000,B11100000,B00011000,
B01010000,B11011000,B00100000,B10100000,B00010000,B10011000,B01001000,B10110000,B11110000,B01000000,
B01110000,B01111000,B00110000,B01101000,B00101000,B11001000};
// секвенция по символу
uint8_t getMorzeSeq(char in) {
uint8_t till = 0;
if (in < '0') {
return 0;
} else if (in <= '9') {
till = in - 0x2F; // если цифра , то корректируем на 0x2F;
} else if (in < 'A') {
return 0;
} else if (in <= 'Z') {
till = in - 0x36; // заглавные буквы до Z, в нашей таблице с 11 до 37
} else if (in < 'a') {
return 0;
} else if (in <= 'z') {
till = in - 0x56; // маленькие, передаем как заглавные буквы до z, в нашей таблице с 11 до 37
}
if (till>=sizeof(morseCode)) {
return 0;
}
return pgm_read_byte_near(morseCode+till);
}
void sendBeacon(char* _thePhrase) {
while (*_thePhrase) {
if (*_thePhrase==' '){
delay(5*DOTLEN);
} else {
uint8_t buff=getMorzeSeq(*_thePhrase);
if(buff){
uint8_t mask=1;
while(!(buff & mask)){
mask<<=1;
}
mask<<=1;
while(mask){
(buff & mask) ? dot() : dash();
mask<<=1;
}
delay(2*DOTLEN);
}
}
_thePhrase++;
}
}
Обратите внимание первый символ в таблице тоже поправлен.
UPD чуток поправил, что бы нелегальные символы не замечались, а то пауза была
весь смысл сей бодяги, маяк надо инициализировать после определения координат развёртывания аппаратуры и определения каким позывным будем работать, то есть эти данные получить из серийного порта и записать в EEPROM, чтобы при отключении питания не надо было снова вносить корректные данные, при включении питания получаем строку из EEPROM её и подсовываем функции вывода маяка...
звучит как ТЗ в разделе "Ищу исполнителя", уж простите. Не вижу ничего сложного, но удивлен, что активному участнику форума надо обьяснять очевидные вещи.
Делите задачу на отдельные части:
1. Прием позывного из Сериал
2. Запись позывного в ЕЕПРОМ
3. Извлечение позывного из ЕЕПРОМ
4. Формирование готовой строки из позывного, места положения и чего там еще
Задачки 1-3 по отдельности разобраны на форуме неоднократно. Задачу 4 только что расписали sadman и Евгений.
А уж скомпоновать из 4 задачек готовый код - это либо сами, либо в упомянутый раздел.
По первой единице можно, да. Только формировать неудобно будет последовательности и один бит выпадает. Скоко там в коде Морзе максимальное кол-во тире-точек в символе?
5? есть еще россыпь точек, но она двойная, тогда шесть, но это типа когда ошибочный символ передан, забить его, нам оно не надо...
лучше скажите ка переменную типа String в структуру засунуть
1. Максимум 9: известный сигнал "...---..." передается как один символ.
2. String в структуру засовывается без проблем. Проблемы начинаются только при попытках записать или передать эту структуру (т.н. сериализация).
1. Максимум 9: известный сигнал "...---..." передается как один символ.
2. String в структуру засовывается без проблем. Проблемы начинаются только при попытках записать или передать эту структуру (т.н. сериализация).
1. для маячка это не актуально, хотя ничего не стоит передавать и отдельными символами
2. так с того всё и начиналось, что структура читается и записывается в EEPROM одной командой, еле нашёл как строки заносить в массив чар структуры )))
у меня так - my_call.toCharArray(mb.call_sign,20);
1. Максимум 9: известный сигнал "...---..." передается как один символ.
2. String в структуру засовывается без проблем. Проблемы начинаются только при попытках записать или передать эту структуру (т.н. сериализация).
1. для маячка это не актуально, хотя ничего не стоит передавать и отдельными символами
2. так с того всё и начиналось, что структура читается и записывается в EEPROM одной командой, еле нашёл как строки заносить в массив чар структуры )))
у меня так - my_call.toCharArray(mb.call_sign,20);
1. Про актуальность спорить не буду, но сигнал SOS и строка "SOS" передаются по-разному. Приммерно так "...---..." и так "... --- ...".
2. Насколько я понимаю (а для меня С/С++ - не родные языки), структура и объект в С++ - это одно и то же. Соответственно, для структуры (объекта) должен быть свой райтер, который правильно обрабатывает эту структуру. Но именно свой, а не по умолчанию (если в структуре фигурируют строки, адреса etc.).
1. не передавал и не принимал - не знаю
2. вообще не понимаю, о чём вы, я жеж дилетант, языков не учил, осваивал самостоятельно, а в начале вообще в кодах писал, до сих пор помню что С3 это JMP )))
С тех пор, как я выучил азбуку Морзе... не могу уснуть под дождь... Например, вчера я услышал....что дождь позвал меня выпить....Причём трижды и по имени....
Делей, в любом случае зло.
А позвольте тут с вами не согласица.
Ну дык я не запрещал вроде, однако без аргументов как то не комильфо :)
Ну дык я не запрещал вроде, однако без аргументов как то не комильфо :)
я тут недавно выкладывал, на что тут можно delay заменить?
Будет использоваться раза 3-4 в год
Не, ну если так, то нормально. Только делэй тогда нужен продвинутый ардуиновский 4 месяца не потянет. Может DUE подойдет...
Не могу смотреть на эти мучения... :(
Запилил и на этой базе скетч в теме про Маяк, в проектах, да где-то что-то видимо ошибся, на символ U возвращает 0х92 пиликает и затыкается, может посмотрите опытным глазом, Вариант 2
я тут недавно выкладывал, на что тут можно delay заменить?
Вам формальный ответ или так... Я уже два варианта привел выше, однако могу еще, правда это зависит от причин того почему "иначе не запишется". Ну например так:
я тут недавно выкладывал, на что тут можно delay заменить?
Вам формальный ответ или так... Я уже два варианта привел выше, однако могу еще, правда это зависит от причин того почему "иначе не запишется". Ну например так:
там не только запись страдает, но и чтения не должно быть в течение 10 мс записи. Вопщем, вместо того, чтобы городить флаг Busy в классе, проще deley-eм подождать 10 мс.
Запилил и на этой базе скетч в теме про Маяк, в проектах, да где-то что-то видимо ошибся, на символ U возвращает 0х92 пиликает и затыкается, может посмотрите опытным глазом, Вариант 2
Кто и откуда возвращает ?
Какой код у вашего символа 'U' ?
я одно скажу, программы людей, более взрослых, чем я, особенно функции инициализации разных дисплеев, от AdaFruit, UTFT, да той же LiquidCrystal, набиты delay-ями чуть менее, чем полностью, и както ничо. Каждому овощу - своё применение.
там не только запись страдает, но и чтения не должно быть в течение 10 мс записи. Вопщем, вместо того, чтобы городить флаг Busy в классе, проще deley-eм подождать 10 мс.
Ну сами же понимаете, чем можно заменить :) Флажком, зато при флажке получите лишние миллисекунды, которые гарантировано открутились бы в делее.
Но я не параноик :) Речь идет о вот таких теневых задачах, как трансляция морзе с одновременном наборе фразы с клавиатуры. Да и разница между 15 мс и 0.25 сек ощутима, согласитесь. Кроме того в вашем случае, по сути вы ничего другого делать не можете, по объективным причинам, "фича" внешнего флеша. А тут в маяке это какая причина ?
Но есть у меня подозрение, что у вашей микросхемы есть флажек занятости, который просто нужно проверять. И тогда вы с делеем тут, тоже не правы :)
Ну сами же понимаете, чем можно заменить :) Флажком, зато при флажке получите лишние миллисекунды, которые гарантировано открутились бы в делее.
Но я не параноик :) Речь идет о вот таких теневых задачах, как трансляция морзе с одновременном наборе фразы с клавиатуры. Да и разница между 15 мс и 0.25 сек ощутима, согласитесь. Кроме того в вашем случае, по сути вы ничего другого делать не можете, по объективным причинам, "фича" внешнего флеша. А тут в маяке это какая причина ?
Но есть у меня подозрение, что у вашей микросхемы есть флажек занятости, который просто нужно проверять. И тогда вы с делеем тут, тоже не правы :)
Меня можно на "ты", я смольных не кончал. :)
ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет.
Имеем в сериале U - 92
Меня можно на "ты", я смольных не кончал. :)
Ну это я так. Что бы никого не обидеь :) Поскольку, иногда, использую обращение на "ты", к одному персонажу, который очень злится этому действу и продолжает "очищать си".
Имеем в сериале U - 92
Нашел, я сутра такой фееричный :)
Си, да, должен быть православный и дважды очищенный, через колонну с березовыми бруньками, иначе фонтаны будут лить как на полшестого
Строки 7-9 вывожу и смотрю, что отослали, что получили
может в этой строке? -
return
pgm_read_byte_near(morseCode+till);
ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет.
ХОЧУ
Имеем в сериале U - 92
Нашел, я сутра такой фееричный :)
Как только встал тогда и утро? )))
ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет.
ХОЧУ
Поразбираюсь. На выходных я буду нетрезв вхлам, канеш, а вот на след. неделе мне будет нечем заняца, паматрю.
ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет.
ХОЧУ
Поразбираюсь. На выходных я буду нетрезв вхлам, канеш, а вот на след. неделе мне будет нечем заняца, паматрю.
Это может понадобится для другого проекта, клавиатурный датчик кода морзе, но там наверное лучше 32U4 использовать, чтобы USB клавиатуру подцепить можно было
Строка 48 "break;" - удалить нахрен, остаток от старой реализации с "тупым поиском", проглядел.
Впрочем, вот вариант с "защитой от косяков"
Обратите внимание первый символ в таблице тоже поправлен.
UPD чуток поправил, что бы нелегальные символы не замечались, а то пауза была
Как только встал тогда и утро? )))
Ну да :) Приемущество безработного фрилансера :)
Как только встал тогда и утро? )))
Ну да :) Приемущество безработного фрилансера :)
поправил, испытаю в обед...
работает как швейцарские часы )))
Пообедал, что ли ?
Пообедал, что ли ?
а то, теперь лежу на гвоздях, еще минут 10 и на работу
вопрос снят
С каво?
С каво?
Вот пообещал ему отсыпать таймеров, а теперь думаешь он тебя отпустит ? :)
Дак он вопрос снял. Мошт, ему, внезапно, стало неинтересно. А туть я припрусь не к месту, со своими таймерами.
Так, все, мне пора метать стаканы на стол. И прочую посуду... До понедельника.
Пока!
Дак он вопрос снял. Мошт, ему, внезапно, стало неинтересно. А туть я припрусь не к месту, со своими таймерами.
да я sadman41 вопрос задал, не дождался, сам разобрался в его коде
String::c_str()
Дет, это ему не поможет в поиске конца массива структур :)
а Это?: my_call.toCharArray(mb.call_sign,20);
весь смысл сей бодяги, маяк надо инициализировать после определения координат развёртывания аппаратуры и определения каким позывным будем работать, то есть эти данные получить из серийного порта и записать в EEPROM, чтобы при отключении питания не надо было снова вносить корректные данные, при включении питания получаем строку из EEPROM её и подсовываем функции вывода маяка...
звучит как ТЗ в разделе "Ищу исполнителя", уж простите. Не вижу ничего сложного, но удивлен, что активному участнику форума надо обьяснять очевидные вещи.
Делите задачу на отдельные части:
1. Прием позывного из Сериал
2. Запись позывного в ЕЕПРОМ
3. Извлечение позывного из ЕЕПРОМ
4. Формирование готовой строки из позывного, места положения и чего там еще
Задачки 1-3 по отдельности разобраны на форуме неоднократно. Задачу 4 только что расписали sadman и Евгений.
А уж скомпоновать из 4 задачек готовый код - это либо сами, либо в упомянутый раздел.
вроде и сам одолел скомпоновать
CW хорош, мы единственные с Михаилом UA1QV в истории ВДВ кто сделал канал связи на 1000км при мощности передатчика 1 ватт!!!
Это что значит?
По первой единице можно, да. Только формировать неудобно будет последовательности и один бит выпадает. Скоко там в коде Морзе максимальное кол-во тире-точек в символе?
5? есть еще россыпь точек, но она двойная, тогда шесть, но это типа когда ошибочный символ передан, забить его, нам оно не надо...
лучше скажите ка переменную типа String в структуру засунуть
1. Максимум 9: известный сигнал "...---..." передается как один символ.
2. String в структуру засовывается без проблем. Проблемы начинаются только при попытках записать или передать эту структуру (т.н. сериализация).
1. Максимум 9: известный сигнал "...---..." передается как один символ.
2. String в структуру засовывается без проблем. Проблемы начинаются только при попытках записать или передать эту структуру (т.н. сериализация).
1. для маячка это не актуально, хотя ничего не стоит передавать и отдельными символами
2. так с того всё и начиналось, что структура читается и записывается в EEPROM одной командой, еле нашёл как строки заносить в массив чар структуры )))
у меня так - my_call.toCharArray(mb.call_sign,20);
1. Максимум 9: известный сигнал "...---..." передается как один символ.
2. String в структуру засовывается без проблем. Проблемы начинаются только при попытках записать или передать эту структуру (т.н. сериализация).
1. для маячка это не актуально, хотя ничего не стоит передавать и отдельными символами
2. так с того всё и начиналось, что структура читается и записывается в EEPROM одной командой, еле нашёл как строки заносить в массив чар структуры )))
у меня так - my_call.toCharArray(mb.call_sign,20);
1. Про актуальность спорить не буду, но сигнал SOS и строка "SOS" передаются по-разному. Приммерно так "...---..." и так "... --- ...".
2. Насколько я понимаю (а для меня С/С++ - не родные языки), структура и объект в С++ - это одно и то же. Соответственно, для структуры (объекта) должен быть свой райтер, который правильно обрабатывает эту структуру. Но именно свой, а не по умолчанию (если в структуре фигурируют строки, адреса etc.).
1. не передавал и не принимал - не знаю
2. вообще не понимаю, о чём вы, я жеж дилетант, языков не учил, осваивал самостоятельно, а в начале вообще в кодах писал, до сих пор помню что С3 это JMP )))
а в Морзе бувают буквы/цыфры/знаки длиннее 7 бит (точек/тире)?
а в Морзе бувают буквы/цыфры/знаки длиннее 7 бит (точек/тире)?
таки да
Ммм... видимо, плохо мня учили, не могу припомнить. Хотя, я кроме военных цифр, да кодов/сокращений ничго и не принимал/передавал почти
так, "backspace" там же как раз 8 точек.
А. Забой. Точно.
таки да
Да ладно ? Китайский алфавит ?
С тех пор, как я выучил азбуку Морзе... не могу уснуть под дождь... Например, вчера я услышал....что дождь позвал меня выпить....Причём трижды и по имени....
Забой мне почему то помниться как 7. Может и бывают, но только в специфических сферах. В любительском эфире длинных не вспомню.
Если забой выкинуть, тада можно в байт уложиться. Ок. Спасибо
Я и 7 то не припомню. Вроде, вся пунктуацея в 6 укладывалась. Ну неважно, 7 точно хва
А я вообще про забой не помню. Да и использование бэкспейса в маяках оченно прикольный фетишь :)
использование бэкспейса в маяках
Вопрос деда был не про маяки, а "ваще". А так, да, забой - восемь точек.
Да, похоже 8. Вот списфические: