Помницца у нас один деятель на "Утёсе" морзянку отстукивал, ото музыка была. На несколько километров беспроводная передача шла :))) Так радисты даже говорили, что и вправду что-то разумное получалось - они мол типа могли принять. Не, знаю, мож брехали.
Помницца у нас один деятель на "Утёсе" морзянку отстукивал, ото музыка была. На несколько километров беспроводная передача шла :))) Так радисты даже говорили, что и вправду что-то разумное получалось - они мол типа могли принять. Не, знаю, мож брехали.
Ну эта знатный извращенец ! Одно нажатие на курок тыщи полтроты поди, рублеф. Одна буква в среднем десять тыщ. Это ему в "Ищу исполнителя" !
Хрен их связистов разберёт, чего они там принимали. Кто-то из них как-то вякнул, что при ленте в 50 патронов, серьёзного сообщения не передашь, на что пулемётчики резонно заметили, что сообщения от "Утёса" - это всегда серьёзно (не какой-нибудь сраный РПК), а краткость - сестра таланта.
Главное под такую передачу не нарваться. А то медицина давно уже не бесплатная.
Это да. Есть правда один плюс, при таком калибре, там уж скорее всего пофиг платная она или нет :)
Хотя, прецедент был. Тем же самым калибром, только из авиационного пулемёта, японскому лётчику во время ВМВ прилетело - снесло полчерепа. Так выжил, ему сделали протез, типа колпак, чтобы мозги не пылились и он умудрился с этим протезом черепа вернуться в авиацию, воевал до конца войны и ещё довольно долго прожил после войны. Бывает же, блин!
Это получается, что ему только оставшаяся половина то и нужна была :( Сколько ресурсов в человеке не освоено.... А елси бы он целым мозгом думал... От было бы круто !
/*это можно оставить на прежнем месте*/
float weight1 ;
float weight2 ;
float weight3 ;
/* а вот это надо поместить в setup*/
weight1 = EEPROM_float_read(0);
weight2 = EEPROM_float_read(4);
weight3 = EEPROM_float_read(8);
А по нормальному, то прокладку которая написала скетч, надо срочно поменять. А то еще где-то дерьмо побьет.
А по нормальному, то прокладку которая написала скетч, надо срочно поменять. А то еще где-то дерьмо побьет.
Этот скетч писал я - человек, который еще 10 дней назад не знал что такое микроконтроллеры и принцип их действия.
То что написал - мне нравится. По одной простой причине - то устройство, которым управляет микроконтроллер, в итоге работает так как мне было необходимо.
Да, спасибо
использование бэкспейса в маяках
Вопрос деда был не про маяки, а "ваще". А так, да, забой - восемь точек.
Я не радист :) Еклмн... слово то какое... В любом случае, этот знак нужен только плохому радисту :)
Дед ! Тебе бекспейс нужен ?
Нет.
Я спрашивал, чтоб убедиться, что код знака в байт влезет. И оно так и есть. Цифры, буквы и пунктуация точно влезуть, а остальное от лукавава
Нет.
Вооо... Значит Дед хороший радист !
Я помню, что при ошибке передачи передавали 5 "Е". А не 8 точек. И группу передавали сначала
Но при желании можно и бэкспейс в восемь бит упихнуть. Только вот эта вот экономия 25 байт флеша, она страннее чем delay...
Да по большому счету, маяк ничем больше заниматься и не обязан, ему и delay нихрена не повредит.
Помницца у нас один деятель на "Утёсе" морзянку отстукивал, ото музыка была. На несколько километров беспроводная передача шла :))) Так радисты даже говорили, что и вправду что-то разумное получалось - они мол типа могли принять. Не, знаю, мож брехали.
...они мол типа могли принять.
И ведь наверняка приняли.)
Помницца у нас один деятель на "Утёсе" морзянку отстукивал, ото музыка была. На несколько километров беспроводная передача шла :))) Так радисты даже говорили, что и вправду что-то разумное получалось - они мол типа могли принять. Не, знаю, мож брехали.
Ну эта знатный извращенец ! Одно нажатие на курок тыщи полтроты поди, рублеф. Одна буква в среднем десять тыщ. Это ему в "Ищу исполнителя" !
Хрен их связистов разберёт, чего они там принимали. Кто-то из них как-то вякнул, что при ленте в 50 патронов, серьёзного сообщения не передашь, на что пулемётчики резонно заметили, что сообщения от "Утёса" - это всегда серьёзно (не какой-нибудь сраный РПК), а краткость - сестра таланта.
Дык тут и платная слабо поможет :( Что приемнику, что передатчику....
Хотя, прецедент был. Тем же самым калибром, только из авиационного пулемёта, японскому лётчику во время ВМВ прилетело - снесло полчерепа. Так выжил, ему сделали протез, типа колпак, чтобы мозги не пылились и он умудрился с этим протезом черепа вернуться в авиацию, воевал до конца войны и ещё довольно долго прожил после войны. Бывает же, блин!
Это получается, что ему только оставшаяся половина то и нужна была :( Сколько ресурсов в человеке не освоено.... А елси бы он целым мозгом думал... От было бы круто !
Ну, я точно не знаю, мож ему только черепушку сорвало, а мозги целыми остались. Не знаю.
использование бэкспейса в маяках
Вопрос деда был не про маяки, а "ваще". А так, да, забой - восемь точек.
обычно 6 достаточно )) по две три группы
Во как тема оживилась, а начиналось то с того, что в епром шить/читать целую структуру можно одной командой
подскажите, что не так?
ругается на 8-10 строки.
'EEPROM_float_read' was not declared in this scope
#include <Wire.h> #include "HX711.h" #include <LiquidCrystal_I2C.h> #include <EEPROM.h> LiquidCrystal_I2C lcd(0x27, 16, 2); HX711 scale(A1, A0); float weight1 = EEPROM_float_read(0); float weight2 = EEPROM_float_read(4); float weight3 = EEPROM_float_read(8); float calibration_factor = -337; float units; float ounces; int regim = 1; int flagRegim = 0; int regimWork = 1; int flagWork = 0; int regimSettings = 1; int flagSettings = 0; float realWeight; float requestedWeight; int writePlace; float numbA; float numbB; float numbC; float numbD; int butL = 4; int butC = 3; int butR = 2; char printRegim; float printWeight; int led = 10; void setup() { Serial.begin(9600); scale.set_scale(); scale.tare(); scale.set_scale(calibration_factor); lcd.init(); lcd.backlight(); pinMode (led, OUTPUT); } void loop() { Serial.print("Reading: "); units = scale.get_units(); realWeight = units * 0.035274; requestedWeight = numbA + numbB + numbC / 10 + numbD / 100; //------- отображение названия режима -------- lcd.setCursor(0, 0); lcd.print(printRegim); lcd.setCursor(1, 0); lcd.print("-"); lcd.setCursor(2, 0); lcd.print(printWeight, 2); //------------ отображение необходимого веса ---------- lcd.setCursor(10, 0); if (numbA = 0) { lcd.print("0"); lcd.setCursor(11, 0); lcd.print(printWeight, 2); } else { lcd.print(printWeight, 2); } //----------- переглючение режимов "Работа (regim1)" и "Настройки(regim2_" if (digitalRead(butC) == HIGH && flagRegim == 0) { regim = regim + 1; flagRegim = 1; if (regim > 2) { regim = 1; } } if (digitalRead(butC) == LOW && flagRegim == 1) { flagRegim = 0; } //---------- Условия режимов ------------ if (regim == 1) { lcd.setCursor(6, 1); if (realWeight < 0.05) { lcd.print("00.00"); } else { lcd.print(realWeight, 2); } printRegim = "W"; work(); } if (regim == 2) { printRegim = "S"; settings(); } } //---------- Установка подрежима "Работа" ------------ float work() { if (digitalRead(butL) == HIGH && flagWork == 0) { regimWork = regimWork + 1; flagWork = 1; if (regimWork > 3) { regimWork = 1; } } if (digitalRead(butL) == LOW && flagWork == 1) { flagWork = 0; } // ------------- Режим Work1 --------------- if (regimWork == 1) { requestedWeight = weight1; printWeight = 1; } if (regimWork == 2) { requestedWeight = weight2; printWeight = 2; } if (regimWork == 3) { requestedWeight = weight3; printWeight = 3; } if (digitalRead(butR) == HIGH) { workOn(); } if ((realWeight) >= (requestedWeight - 2)) { workOff(); } } // ----------------- режим Settings -------------------- float settings() { // ----------------- переключение цифр --------------- if (digitalRead(butL) == HIGH && flagSettings == 0) { regimSettings = regimSettings + 1; flagSettings = 1; if (regimSettings > 4) { regimSettings = 1; } } if (digitalRead(butL) == LOW && flagSettings == 1) { flagSettings = 0; } // ---------------- условия подрежимов Settings -------------- if (regimSettings == 1) { countOn1(); } if (regimSettings == 2) { countOn2(); } if (regimSettings == 3) { countOn3(); } if (regimSettings == 4) { countOn4(); if (regimWork == 1) { writePlace = 0); } if (regimWork == 2) { writePlace = 4); } if (regimWork == 3) { writePlace = 8); } if (digitalRead(butL) == HIGH) { EEPROM_float_write(writePlace, requestedWeight); delay(500); regim = 1; } } // ------------------ вкл / выкл помпы ---------------- void workOn() { digitalWrite(led, HIGH); // включается диод и помпа } void workOff() { digitalWrite(led, LOW); // выключается диод и помпа } // ---------------- запись requestedWeight (numb) ------ float countOn1() { if (digitalRead (butR) == HIGH && numbA < 90) { numbA = numbA + 10; delay(300); } if (digitalRead(butR) == HIGH && numbA == 90) { numbA = 0; delay(300); lcd.clear(); } } float countOn2() { if (digitalRead (butR) == HIGH && numbB < 9) { numbB = numbB + 1; delay(300); } if (digitalRead(butR) == HIGH && numbB == 9) { numbB = 0; delay(300); lcd.clear(); } float countOn3() { if (digitalRead (butR) == HIGH && numbC < 9) { numbC = numbC + 1; delay(300); } if (digitalRead(butR) == HIGH && numbC == 9) { numbC = 0; delay(300); lcd.clear(); } } float countOn4() { if (digitalRead (butR) == HIGH && numbD < 9) { numbD = numbD + 1; delay(300); } if (digitalRead(butR) == HIGH && numbD == 9) { numbD = 0; delay(300); lcd.clear(); } } // ---------------- запись и чтение в EEPROM -------------- // чтение float EEPROM_float_read(int addr) { byte raw[4]; for (byte i = 0; i < 4; i++) raw[i] = EEPROM.read(addr + i); float &num = (float&)raw; return num; } // запись void EEPROM_float_write(int addr, float num) { byte raw[4]; (float&)raw = num; for (byte i = 0; i < 4; i++) EEPROM.write(addr + i, raw[i]); }подскажите, что не так?
ругается на 8-10 строки.
'EEPROM_float_read' was not declared in this scope
в стандартном С функции должны быть описаны до первого использования.
ЗЫ Непонятно, зачем они нужны вообще, стандартные ардуиновские EEPROM.put EEPROM.get умеют работать с флоат
Gexogyan
А по нормальному, то прокладку которая написала скетч, надо срочно поменять. А то еще где-то дерьмо побьет.
В общем, начал все заново писать, все заработало. Видимо где-то либо скобку пропустил, либо еще какая-то мелоч. Но тем не менее, спасибо за ответ!
В общем, начал все заново писать, все заработало.
Винду не забыли переставить? Чтобы уж наверняка...
А по нормальному, то прокладку которая написала скетч, надо срочно поменять. А то еще где-то дерьмо побьет.
Этот скетч писал я - человек, который еще 10 дней назад не знал что такое микроконтроллеры и принцип их действия.
То что написал - мне нравится. По одной простой причине - то устройство, которым управляет микроконтроллер, в итоге работает так как мне было необходимо.
Винду не забыли переставить? Чтобы уж наверняка...
Ну ладно, не издевайся. У меня опыт в ардуино и С++ меньше 10 дней
Ну ладно, не издевайся. У меня опыт в ардуино и С++ меньше 10 дней
так ведь сразу два человека ответили, как поправить ошибку, не переписывая код заново.
так ведь сразу два человека ответили, как поправить ошибку, не переписывая код заново.
Да я не понял нифига, а надоедать не стал)
Ну ладно, не издевайся. У меня опыт в ардуино и С++ меньше 10 дней
Бывает, чо. У всех так было...
Да я не понял нифига, а надоедать не стал)
И молодец! Зато переписал сам и у самого заработало - это самое важное.
И молодец! Зато переписал сам и у самого заработало - это самое важное.
Спасибо!
Да, и удовольствие в таком случае получаешь куда больше!