Запись и чтение EEPROM переменных типа float, unsigned long, long, unsigned int, int

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

brokly пишет:

Делей, в любом случае зло. 

А позвольте тут с вами не согласица. 

Ну дык я не запрещал вроде, однако без аргументов как то не комильфо :) 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brokly пишет:

Ну дык я не запрещал вроде, однако без аргументов как то не комильфо :) 

я тут недавно выкладывал, на что тут можно 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;  // ставим признак, что страница не модифицирована (сохранена)
	}

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

ua6em пишет:

Будет использоваться раза 3-4 в год

Не, ну если так, то нормально. Только делэй тогда нужен продвинутый ардуиновский 4 месяца не потянет. Может DUE подойдет...

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

brokly пишет:

Не могу смотреть на эти мучения... :(

//ТАБЛИЦА ГЕНЕРАЦИИ БУКВЫ АЗБУКИ МОРЗЕ
//                    ''    
//                    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

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

я тут недавно выкладывал, на что тут можно 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;  // ставим признак, что страница не модифицирована (сохранена)
  }

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brokly пишет:

DetSimen пишет:

я тут недавно выкладывал, на что тут можно 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 мс. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

ua6em пишет:

Запилил и на этой базе скетч в теме про Маяк, в проектах, да где-то что-то видимо ошибся, на символ U возвращает 0х92 пиликает и затыкается, может посмотрите опытным глазом,  Вариант 2

Кто и откуда возвращает ?

Какой код у вашего символа 'U' ?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

я одно скажу, программы людей, более взрослых, чем я, особенно функции инициализации разных дисплеев, от AdaFruit, UTFT, да той же LiquidCrystal, набиты delay-ями чуть менее, чем полностью, и както ничо.  Каждому овощу - своё применение. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

там не только запись страдает, но и чтения не должно быть в течение 10 мс записи.  Вопщем, вместо того, чтобы городить флаг Busy в классе, проще deley-eм  подождать 10 мс. 

Ну сами же понимаете, чем можно заменить :) Флажком, зато при флажке получите лишние миллисекунды, которые гарантировано открутились бы в делее.

Но я не параноик :) Речь идет о вот таких теневых задачах, как трансляция морзе с одновременном наборе фразы с клавиатуры. Да и разница между 15 мс и 0.25 сек ощутима, согласитесь. Кроме того в вашем случае, по сути вы ничего другого делать не можете, по объективным причинам, "фича" внешнего флеша. А тут в маяке это какая причина ?

Но есть у меня подозрение, что у вашей микросхемы есть флажек занятости, который просто нужно проверять. И тогда вы с делеем тут, тоже не правы :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brokly пишет:

Ну сами же понимаете, чем можно заменить :) Флажком, зато при флажке получите лишние миллисекунды, которые гарантировано открутились бы в делее.

Но я не параноик :) Речь идет о вот таких теневых задачах, как трансляция морзе с одновременном наборе фразы с клавиатуры. Да и разница между 15 мс и 0.25 сек ощутима, согласитесь. Кроме того в вашем случае, по сути вы ничего другого делать не можете, по объективным причинам, "фича" внешнего флеша. А тут в маяке это какая причина ?

Но есть у меня подозрение, что у вашей микросхемы есть флажек занятости, который просто нужно проверять. И тогда вы с делеем тут, тоже не правы :)

Меня можно на "ты", я смольных не кончал. :) 

ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
void sendBeacon(char* _thePhrase) {
   while (*_thePhrase) {
     if (*_thePhrase==' '){
        delay(3*DOTLEN);
     } else {
        uint8_t buff=getMorzeSeq(*_thePhrase);
        Serial.print(*_thePhrase);
        Serial.print(" - ");
        Serial.println(buff, HEX);
        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 - 92

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

Меня можно на "ты", я смольных не кончал. :) 

Ну это я так. Что бы никого не обидеь :) Поскольку, иногда, использую обращение на "ты", к одному персонажу, который очень злится этому действу и продолжает "очищать си".

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

ua6em пишет:

void sendBeacon(char* _thePhrase) {
   while (*_thePhrase) {
     if (*_thePhrase==' '){
        delay(3*DOTLEN);
     } else {
        uint8_t buff=getMorzeSeq(*_thePhrase);
        Serial.print(*_thePhrase);
        Serial.print(" - ");
        Serial.println(buff, HEX);
        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 - 92

Нашел, я сутра такой фееричный :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Строки 7-9 вывожу и смотрю, что отослали, что получили

может в этой строке? -  return pgm_read_byte_near(morseCode+till);

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет. 

ХОЧУ

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

brokly пишет:

ua6em пишет:

void sendBeacon(char* _thePhrase) {
   while (*_thePhrase) {
     if (*_thePhrase==' '){
        delay(3*DOTLEN);
     } else {
        uint8_t buff=getMorzeSeq(*_thePhrase);
        Serial.print(*_thePhrase);
        Serial.print(" - ");
        Serial.println(buff, HEX);
        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 - 92

Нашел, я сутра такой фееричный :)

Как только встал тогда и утро? )))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ua6em пишет:

DetSimen пишет:

ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет. 

ХОЧУ

Поразбираюсь.  На выходных я буду нетрезв вхлам, канеш, а вот на след. неделе мне будет нечем заняца, паматрю. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

ua6em пишет:

DetSimen пишет:

ua6em, хочешь, я тебе к твоей Морзе свои таймеры прикручу, вапще никто никаво ждать не будет. 

ХОЧУ

Поразбираюсь.  На выходных я буду нетрезв вхлам, канеш, а вот на след. неделе мне будет нечем заняца, паматрю. 

Это может понадобится для другого проекта, клавиатурный датчик кода морзе, но там наверное лучше 32U4 использовать, чтобы USB клавиатуру подцепить можно было

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Строка 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 чуток поправил, что бы нелегальные символы не замечались, а то пауза была

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

ua6em пишет:

Как только встал тогда и утро? )))

Ну да :) Приемущество безработного фрилансера :)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

brokly пишет:

ua6em пишет:

Как только встал тогда и утро? )))

Ну да :) Приемущество безработного фрилансера :)

поправил, испытаю в обед...
работает как швейцарские часы )))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Пообедал, что ли ?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

brokly пишет:

Пообедал, что ли ?

а то, теперь лежу на гвоздях, еще минут 10 и на работу

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

вопрос снят

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

С каво?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

С каво?

Вот пообещал ему отсыпать таймеров, а теперь думаешь он тебя отпустит ? :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Дак он вопрос снял.  Мошт, ему, внезапно, стало неинтересно. А туть я припрусь не к месту, со своими таймерами. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Так, все, мне пора метать стаканы на стол. И прочую посуду... До понедельника. 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Пока!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

Дак он вопрос снял.  Мошт, ему, внезапно, стало неинтересно. А туть я припрусь не к месту, со своими таймерами. 

да я sadman41  вопрос задал, не дождался, сам разобрался в его коде

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

brokly пишет:

DetSimen пишет:

String::c_str()

Дет, это ему не поможет в поиске конца массива структур :)

а Это?:  my_call.toCharArray(mb.call_sign,20);

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

ua6em пишет:

весь смысл сей бодяги, маяк надо инициализировать после определения координат развёртывания аппаратуры и определения каким позывным будем работать, то есть эти данные получить из серийного порта и записать в EEPROM, чтобы при отключении питания не надо было снова вносить корректные данные, при включении питания получаем строку из EEPROM её и подсовываем функции вывода маяка...

звучит как ТЗ в разделе "Ищу исполнителя", уж простите. Не вижу ничего сложного, но удивлен, что активному участнику форума надо обьяснять очевидные вещи.

Делите задачу на отдельные части:

1. Прием позывного из Сериал

2. Запись позывного в ЕЕПРОМ

3. Извлечение позывного из ЕЕПРОМ

4. Формирование готовой строки из позывного, места положения и чего там еще

 

Задачки 1-3 по отдельности разобраны на форуме неоднократно. Задачу 4 только что расписали sadman и Евгений.

А уж скомпоновать из 4 задачек готовый код - это либо сами, либо в упомянутый раздел.

вроде и сам одолел скомпоновать

Green
Offline
Зарегистрирован: 01.10.2015

ua6em пишет:

CW хорош, мы единственные с Михаилом UA1QV в истории ВДВ кто сделал канал связи на 1000км при мощности передатчика 1 ватт!!!


Это что значит?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

sadman41 пишет:

По первой единице можно, да. Только формировать неудобно будет последовательности и один бит выпадает. Скоко там в коде Морзе максимальное кол-во тире-точек в символе?

5? есть еще россыпь точек, но она двойная, тогда шесть, но это типа когда ошибочный символ передан, забить его, нам оно не надо...
лучше скажите ка переменную типа String в структуру засунуть

1. Максимум 9: известный сигнал "...---..." передается как один символ.

2. String в структуру засовывается без проблем. Проблемы начинаются только при попытках записать или передать эту структуру (т.н. сериализация).

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Цитата:

1. Максимум 9: известный сигнал "...---..." передается как один символ.

2. String в структуру засовывается без проблем. Проблемы начинаются только при попытках записать или передать эту структуру (т.н. сериализация).

1. для маячка это не актуально, хотя ничего не стоит передавать и отдельными символами
2. так с того всё и начиналось, что структура читается и записывается в EEPROM одной командой, еле нашёл как строки заносить в массив чар структуры )))

у меня так - my_call.toCharArray(mb.call_sign,20);
 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

Цитата:

1. Максимум 9: известный сигнал "...---..." передается как один символ.

2. String в структуру засовывается без проблем. Проблемы начинаются только при попытках записать или передать эту структуру (т.н. сериализация).

1. для маячка это не актуально, хотя ничего не стоит передавать и отдельными символами
2. так с того всё и начиналось, что структура читается и записывается в EEPROM одной командой, еле нашёл как строки заносить в массив чар структуры )))

у меня так - my_call.toCharArray(mb.call_sign,20);
 

1. Про актуальность спорить не буду, но сигнал SOS и строка "SOS" передаются по-разному. Приммерно так "...---..." и так "... --- ...".

2. Насколько я понимаю (а для меня С/С++ - не родные языки), структура и объект в С++ - это одно и то же. Соответственно, для структуры (объекта) должен быть свой райтер, который правильно обрабатывает эту структуру. Но именно свой, а не по умолчанию (если в структуре фигурируют строки, адреса etc.).

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

1. не передавал и не принимал - не знаю
2. вообще не понимаю, о чём вы, я жеж дилетант, языков не учил, осваивал самостоятельно, а в начале вообще в кодах писал, до сих пор помню что С3 это JMP )))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а в Морзе бувают буквы/цыфры/знаки длиннее 7 бит (точек/тире)? 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

DetSimen пишет:

а в Морзе бувают буквы/цыфры/знаки длиннее 7 бит (точек/тире)? 

таки да

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ммм...  видимо, плохо мня учили, не могу припомнить.  Хотя, я кроме военных цифр, да кодов/сокращений ничго и не принимал/передавал почти

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

так, "backspace" там же как раз 8 точек.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

А. Забой. Точно.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ворота пишет:

таки да

Да ладно ? Китайский алфавит ?

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

Green
Offline
Зарегистрирован: 01.10.2015

Забой мне почему то помниться как 7. Может и бывают, но только в специфических сферах. В любительском эфире длинных не вспомню.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Если забой выкинуть, тада можно в байт уложиться. Ок. Спасибо

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Я и 7 то не припомню. Вроде, вся пунктуацея в 6 укладывалась. Ну неважно, 7 точно хва

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

А я вообще про забой не помню. Да и использование бэкспейса в маяках оченно прикольный фетишь :) 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

brokly пишет:

использование бэкспейса в маяках 

Вопрос деда был не про маяки, а "ваще". А так, да, забой - восемь точек. 

Green
Offline
Зарегистрирован: 01.10.2015

Да, похоже 8. Вот списфические:

#define NEW_LINE          B01011000     //aa Add A line
#define NEW_PARAGRAPH     B10001100     //bt Begin Two / double dash
#define START_COPYING     B10101100     //ct Copy This
#define CHANGE            B10011110     //do
#define INVITE            B10110100     //kn oK Named
#define STARTING          B10101100     //ka

#define BREAK             B10001011     //bk  ENTER
#define NEW_PAGE          B01010100     //ar  All T\Rendered
#define UNDERSTOOD        B00010100     //sn  Sho Nuff
#define END_OF_WORK       B00010110     //sk  Silencing Key
#define MORSE_ERROR       B00000001     //........ hh