Вывод корявых данных

atomo2
Offline
Зарегистрирован: 02.06.2021

Добрый день, прощу помочь найти ошибку в коде

Есть весы и есть чековый принтер CB-910, нужно чтобы в чеке было прописано (модель весов, серийник весов, начало чека, время дата и конец чека) это все получилось  сделать.

#include "microDS3231.h"
MicroDS3231 rtc;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
#include "sav_button.h"
SButton button1(4,50,2000,4000,1000);
SButton button2(3,50,2000,4000,1000);

void setup(){
   
   Serial.begin(9600);
   mySerial.begin(9600);

   button1.begin();
   button2.begin();
   
   if (rtc.lostPower()) { 
   rtc.setTime(COMPILE_TIME);
 }
  //rtc.setTime(SEC, MIN, HOUR, DAY, MONTH, YEAR); // устанвока времени вручную
}
void loop(){
     
if (Serial.available())
    mySerial.write(Serial.read());
 
    int buff = Serial.read();
    if (buff == 'S') {
    mySerial.print(rtc.getHours());
    mySerial.print(":");
    mySerial.print(rtc.getMinutes());
    mySerial.print(":");
    mySerial.print(rtc.getSeconds());
    mySerial.print(" ");   
    } 

      switch( button1.Loop() ){
      case SB_CLICK:
           mySerial.print("***************\r\nBW-60RB\r\nS/N: 014330529\r\n\r\nSTART TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\n");
            break;
      case SB_LONG_CLICK:
           mySerial.println("Speed 9600");
           break;
       
   }
   switch( button2.Loop() ){
      case SB_CLICK:
         mySerial.print("\r\nEND TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\nSIGNATURE\r\n***************");
            
            break;
      case SB_LONG_CLICK:
         mySerial.println("Organika");
         break;
     }
}

И осталось только сделать, что когда приходит строчка веса, то  тоже добавлялось время к этой строчке, НО где то  ошибка, строчка эта при каждом нажатии прилетает , как попало, только один раз выдало нормальный результат на 4 нажатии (реализовано это поиском литеры S, которая всегда прилетает в весе и после того,как ее находим, выводим время)

-0000005 S

0000007 G S

-000.0007 S

-000.0006 G 17:55:59

000000 G 17:56:35

-000.006 G 17:56:44

-000.0006G S

-000.00 G S-000.006 G S

-000.0006 G S

-00.006 S-000.0006 G S-0000006G S

-000.0005 G S

-000.0010G S

b707
Offline
Зарегистрирован: 26.05.2017

фигурные скобки в коде правильно расставьте. У вас при приходе символа с весов в строке 24 выполняется только строчка 25, а не весь блок проверки литеры. как наверно вы предполагаете...

sadman41
Offline
Зарегистрирован: 19.10.2016

Да и вот это непонятно зачем сделано.

    mySerial.write(Serial.read());
    int buff = Serial.read();

b707
Offline
Зарегистрирован: 26.05.2017

sadman41 пишет:

Да и вот это непонятно зачем сделано.

    mySerial.write(Serial.read());
    int buff = Serial.read();

ну да, так один символ всегда теряется

atomo2
Offline
Зарегистрирован: 02.06.2021

b707 пишет:

sadman41 пишет:

Да и вот это непонятно зачем сделано.

    mySerial.write(Serial.read());
    int buff = Serial.read();

ну да, так один символ всегда теряется

Получается и эти строки не правильные?

Уже варианта 4 скобок пробовал, при которых компиляцию проходит, но так же не работает(

atomo2
Offline
Зарегистрирован: 02.06.2021

sadman41 пишет:

Да и вот это непонятно зачем сделано.

    mySerial.write(Serial.read());
    int buff = Serial.read();

Как тогда можно по другому реализовать, добавление времени к строчке с весов?

 

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

char buff = Serial.read();
mySerial.write(buff, BYTE);
   
    if (buff == 'S') {

но BYTE больше не поддерживается

sadman41
Offline
Зарегистрирован: 19.10.2016

Что такое BYTE? Вы хоть объясните, что пытаетесь сделать в этом фрагменте.

b707
Offline
Зарегистрирован: 26.05.2017

atomo2 пишет:

Уже варианта 4 скобок пробовал, при которых компиляцию проходит, но так же не работает(

не надо пробовать варианты, надо разобраться. что эти скобки значат и сделать правильно

atomo2
Offline
Зарегистрирован: 02.06.2021

sadman41 пишет:

Что такое BYTE? Вы хоть объясните, что пытаетесь сделать в этом фрагменте.

Пытаюсь после строчки веса, добавить строчку времени

b707
Offline
Зарегистрирован: 26.05.2017

atomo2 пишет:

но BYTE больше не поддерживается

зачем там BYTE. можете обьяснить?

atomo2
Offline
Зарегистрирован: 02.06.2021

b707 пишет:

atomo2 пишет:

но BYTE больше не поддерживается

зачем там BYTE. можете обьяснить?

К сожалению нет(

Если бы я хорошо разбирался , я бы не спрашивал).А так за такой скетч мне выставляли счет в 15к , а по итогу методом проб и ошибок и конечно благодаря вашим подсказкам , получилось сделать все самому, кроме последнего момента , в котором дико туплю

sadman41
Offline
Зарегистрирован: 19.10.2016

Если уж очень хотите написать слово BYTE, то вот так: mySerial.write((byte)buff);

Но особого смысла в в данном случае нет.

atomo2
Offline
Зарегистрирован: 02.06.2021

b707 пишет:

atomo2 пишет:

Уже варианта 4 скобок пробовал, при которых компиляцию проходит, но так же не работает(

не надо пробовать варианты, надо разобраться. что эти скобки значат и сделать правильно

И если литера S не  выполняется, то почему иногда проскакивает нормальный вариант?

b707
Offline
Зарегистрирован: 26.05.2017

atomo2 пишет:

И если литера S не  выполняется, то почему иногда проскакивает нормальный вариант?

у вас там несколько ошибок накладывается. поэтому иногда работает, иногда нет.

 

atomo2
Offline
Зарегистрирован: 02.06.2021

b707 пишет:

atomo2 пишет:

И если литера S не  выполняется, то почему иногда проскакивает нормальный вариант?

у вас там несколько ошибок накладывается. поэтому иногда работает, иногда нет.

 

Ошибки только в скобках? Или есть еще где то? Если  я разберусь со скобками, то остальное все норм?) будет работать?)

b707
Offline
Зарегистрирован: 26.05.2017

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

Найти ошибки просто просмотром кода не всегда выходит, например, тот косяк, что указал sadman - я не заметил. Так что не факт, что найденные ошибки - последние.

b707
Offline
Зарегистрирован: 26.05.2017

atomo2 пишет:

за такой скетч мне выставляли счет в 15к , а по итогу методом проб и ошибок   ...получилось сделать все самому, кроме последнего момента

насколько я помню, начальное  ТЗ за 15К было совсем другим.  Там была куча разных типов весов, подключенных одновременно к одной ардуине, были какие-то "секретные коды", переворачивающие текст и печать должна была осуществляться вовсе не в терминал.

То что сейчас делаете вы - это даже не четверть того, на что вы сначала замахивались, так что ваша похвальба "просили 15к, а в итоге написал три строки и все работает" мягко говоря вранье. Да и эти "три строки" вы уже вымучиваете вторую неделю...

atomo2
Offline
Зарегистрирован: 02.06.2021

b707 пишет:

atomo2 пишет:

за такой скетч мне выставляли счет в 15к , а по итогу методом проб и ошибок   ...получилось сделать все самому, кроме последнего момента

насколько я помню, начальное  ТЗ за 15К было совсем другим.  Там была куча разных типов весов, подключенных одновременно к одной ардуине, были какие-то "секретные коды", переворачивающие текст и печать должна была осуществляться вовсе не в терминал.

То что сейчас делаете вы - это даже не четверть того, на что вы сначала замахивались, так что ваша похвальба "просили 15к, а в итоге написал три строки и все работает" мягко говоря вранье. Да и эти "три строки" вы уже вымучиваете вторую неделю...


Ничего подобного не было, было конкретное ТЗ с картинками , чтоб всем все понятно было.
Тема на форуме все могут ознакомиться.
Вот именно за такое просить 15к, человеку который в этом разбирается работы на 15 минут.
Для человека который, первый раз держит ардуину в руках, получилось разобраться за неделю, считаю норм.
Ибо тема там на форуме одного действующего лица

atomo2
Offline
Зарегистрирован: 02.06.2021

atomo2
Offline
Зарегистрирован: 02.06.2021

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

sadman41
Offline
Зарегистрирован: 19.10.2016

atomo2 пишет:
даже сейчас нет, чтобы конкретно исправить мои ошибки

Зачем это нам?

atomo2
Offline
Зарегистрирован: 02.06.2021

sadman41 пишет:
atomo2 пишет:
даже сейчас нет, чтобы конкретно исправить мои ошибки
Зачем это нам?

а зачем форум? я же не прошу полностью код мне написать.

Ладно к чему полемика эта вся? нет так нет, сам буду разбираться

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

atomo2 пишет:
человеку который в этом разбирается работы на 15 минут. Для человека который, первый раз держит ардуину в руках, получилось разобраться за неделю, считаю норм.

Ну так разобрались?

Теперь делайте сами - за 15 минут.

И нечего здесь на форуме надоедать своими причитаниями. Форум не для того, чтобы делать работу за халявщиков.

sadman41
Offline
Зарегистрирован: 19.10.2016

atomo2 пишет:

sadman41 пишет:
atomo2 пишет:
даже сейчас нет, чтобы конкретно исправить мои ошибки
Зачем это нам?

а зачем форум? 

Я с b707 на форуме переписываюсь, например.

atomo2 пишет:

я же не прошу полностью код мне написать.

Дак вот мы и не пишем. Никому. Даже девочкам.

b707
Offline
Зарегистрирован: 26.05.2017

atomo2 пишет:

Ладно к чему полемика эта вся? нет так нет, сам буду разбираться

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

А что каается цен - теперь, когда вы всему научились и узнали, как легко зарабатывать на программировании - можете сами выставлять ценник 15К за три строчки текста... :) потом расскажете, сколько заработали. ладно? :)

atomo2
Offline
Зарегистрирован: 02.06.2021

Злые вы все))

atomo2
Offline
Зарегистрирован: 02.06.2021

b707 пишет:

atomo2 пишет:

Ладно к чему полемика эта вся? нет так нет, сам буду разбираться

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

А что каается цен - теперь, когда вы всему научились и узнали, как легко зарабатывать на программировании - можете сами выставлять ценник 15К за три строчки текста... :) потом расскажете, сколько заработали. ладно? :)


Да не ныл я о цене, это рынок. Есть спрос и есть предложение. Так что тут все норм. Я тоже когда то за 5 проводков припаяных 4к брал))
Еще раз вам спасибо за помощь)
Попробую разобраться, не получится да и фиг с ним, основное сделано.

b707
Offline
Зарегистрирован: 26.05.2017

atomo2 пишет:
Вам конечно спасибо большое, ткнули носом пару раз, но опять же все додумывал сам, даже сейчас нет, чтобы конкретно исправить мои ошибки , все делаете для того , чтобы я еще 2 недели вымучивал код)

и дальше намерен так же делать.

Когда я тыкаю вас носом - я делаю это именно с целью того, чтобы вы додумывали сами. И разобрались, как правильно делать, а не бегали на форум из-за каждой скобки и каждых одинарных-двойных кавычек. в конце-концов. это в ваших же интересах. Поняв общий принцип - вы всегда сможете поменять код под свои нужды. если захотите расширить функционал или сделать что-то новое.

В отличии от этого, если "конуретно исправить ваши ошибки" - ы ничего не поймете и так и будете сидеть с недоделанным кодом, не смея исправить в нем ни буквы.

 

atomo2
Offline
Зарегистрирован: 02.06.2021

Вычитал про ещё вот такие варианты поиска нужных мне данных

char target[] = "S"

void loop(){
if (Serial.available())
mySerial.write(Serial.read());
if (Serial.find(target)){
mySerial.println(rtc.getHours());
mySerial.println(":");
mySerial.println(rtc.getMinutes());
mySerial.println(":");
mySerial.println(rtc.getSeconds());
mySerial.println(" ");
}

И 2ой способ

if(Serial.find(«S»))

Или

Serial.findUntil («S»);

mySerial.println(rtc.getHours());
mySerial.println(":");
mySerial.println(rtc.getMinutes());
mySerial.println(":");
mySerial.println(rtc.getSeconds());
mySerial.println(" ");
}

Жизне способные варианты?

b707
Offline
Зарегистрирован: 26.05.2017

atomo2 пишет:
Жизне способные варианты?

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

Кроме того, конкретные приведенные куски кода абсолютно нерабочие. Если взять к примеру, первый пример(сорри за тафтологию) - в нем у вас перестанет что-либо выводится на печать. кроме строчек времени.

И ошибку, на которую указывал Садман - вы в этом коде снова повторили, первый байт потока всегда теряется.

 

Добавка - эти идеи сродни использованию parseInt(). которое мы с вами уже проходили

atomo2
Offline
Зарегистрирован: 02.06.2021

Вот нигде не нашел примера char buff = Serial.read(), который мне посоветовали

void loop(){

char buff = Serial.read();
mySerial.write(buff);
if (buff == 'S') {
mySerial.print(rtc.getHours());
mySerial.print(":");
mySerial.print(rtc.getMinutes());
mySerial.print(":");
mySerial.print(rtc.getSeconds());
mySerial.print(" ");
}

alexbmd
Offline
Зарегистрирован: 15.01.2016
#include "microDS3231.h"
MicroDS3231 rtc;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
#include "sav_button.h"
SButton button1(4,50,2000,4000,1000);
SButton button2(3,50,2000,4000,1000);

void setup(){
   
   Serial.begin(9600);
   mySerial.begin(9600);

   button1.begin();
   button2.begin();
   
   if (rtc.lostPower()) { 
   rtc.setTime(COMPILE_TIME);
 }
  //rtc.setTime(SEC, MIN, HOUR, DAY, MONTH, YEAR); // устанвока времени вручную
}
void loop(){
     
if (Serial.available()){
    
 
    int buff = Serial.read();
    if (buff == 'S') {
    mySerial.print(rtc.getHours());
    mySerial.print(":");
    mySerial.print(rtc.getMinutes());
    mySerial.print(":");
    mySerial.print(rtc.getSeconds());
    mySerial.print(" ");   
    } }

      switch( button1.Loop() ){
      case SB_CLICK:
           mySerial.print("***************\r\nBW-60RB\r\nS/N: 014330529\r\n\r\nSTART TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\n");
            break;
      case SB_LONG_CLICK:
           mySerial.println("Speed 9600");
           break;
       
   }
   switch( button2.Loop() ){
      case SB_CLICK:
         mySerial.print("\r\nEND TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\nSIGNATURE\r\n***************");
            
            break;
      case SB_LONG_CLICK:
         mySerial.println("Organika");
         break;
     }
}

 

b707
Offline
Зарегистрирован: 26.05.2017

работает?

atomo2
Offline
Зарегистрирован: 02.06.2021

b707 пишет:

работает?

Через час смогу проверить, пока не на месте.

atomo2
Offline
Зарегистрирован: 02.06.2021

alexbmd пишет:

#include "microDS3231.h"
MicroDS3231 rtc;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
#include "sav_button.h"
SButton button1(4,50,2000,4000,1000);
SButton button2(3,50,2000,4000,1000);

void setup(){
   
   Serial.begin(9600);
   mySerial.begin(9600);

   button1.begin();
   button2.begin();
   
   if (rtc.lostPower()) { 
   rtc.setTime(COMPILE_TIME);
 }
  //rtc.setTime(SEC, MIN, HOUR, DAY, MONTH, YEAR); // устанвока времени вручную
}
void loop(){
     
if (Serial.available()){
    
 
    int buff = Serial.read();
    if (buff == 'S') {
    mySerial.print(rtc.getHours());
    mySerial.print(":");
    mySerial.print(rtc.getMinutes());
    mySerial.print(":");
    mySerial.print(rtc.getSeconds());
    mySerial.print(" ");   
    } }

      switch( button1.Loop() ){
      case SB_CLICK:
           mySerial.print("***************\r\nBW-60RB\r\nS/N: 014330529\r\n\r\nSTART TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\n");
            break;
      case SB_LONG_CLICK:
           mySerial.println("Speed 9600");
           break;
       
   }
   switch( button2.Loop() ){
      case SB_CLICK:
         mySerial.print("\r\nEND TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\nSIGNATURE\r\n***************");
            
            break;
      case SB_LONG_CLICK:
         mySerial.println("Organika");
         break;
     }
}

 

 

Спасибо большое) время выдает, а вот сам вес нет

b707
Offline
Зарегистрирован: 26.05.2017

atomo2 пишет:

 

Спасибо большое) время выдает, а вот сам вес нет

сорри, не заметил что код alexbnd разместил... иначе бы не спрашивал.

alexbmd
Offline
Зарегистрирован: 15.01.2016

\а вот сам вес нет/

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

b707
Offline
Зарегистрирован: 26.05.2017

alexbmd пишет:

а в коде и нету вывода веса насколько я вижу

а если не видите, что полезли тогда?

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

alexbmd пишет:

а в коде и нету вывода веса насколько я вижу

Очки подарить или сам купишь?

строка 25 исходного "кода".

-------------

ЗЫ: не нужно лезть в то, в чем не понимаешь вообще нихера. Если мы не указываем ТС, как решить его задачу, значит нам прикольнее смотреть на "живых обезьянок".

alexbmd
Offline
Зарегистрирован: 15.01.2016

ну там такая логика что действительно очки не помешают

 

#include "microDS3231.h"
MicroDS3231 rtc;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
#include "sav_button.h"
SButton button1(4,50,2000,4000,1000);
SButton button2(3,50,2000,4000,1000);

void setup(){
   
   Serial.begin(9600);
   mySerial.begin(9600);

   button1.begin();
   button2.begin();
   
   if (rtc.lostPower()) { 
   rtc.setTime(COMPILE_TIME);
 }
  //rtc.setTime(SEC, MIN, HOUR, DAY, MONTH, YEAR); // устанвока времени вручную
}
void loop(){
     
if (Serial.available()){
 
    int buff = Serial.read();
    if (buff == 'S') {
    mySerial.print(rtc.getHours());
    mySerial.print(":");
    mySerial.print(rtc.getMinutes());
    mySerial.print(":");
    mySerial.print(rtc.getSeconds());
    mySerial.print(" ");   
    while(Serial.available()) mySerial.write(Serial.read());

    } }

      switch( button1.Loop() ){
      case SB_CLICK:
           mySerial.print("***************\r\nBW-60RB\r\nS/N: 014330529\r\n\r\nSTART TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\n");
            break;
      case SB_LONG_CLICK:
           mySerial.println("Speed 9600");
           break;
       
   }
   switch( button2.Loop() ){
      case SB_CLICK:
         mySerial.print("\r\nEND TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\nSIGNATURE\r\n***************");
            
            break;
      case SB_LONG_CLICK:
         mySerial.println("Organika");
         break;
     }
}

 

atomo2
Offline
Зарегистрирован: 02.06.2021

К сожалению все так же(

sadman41
Offline
Зарегистрирован: 19.10.2016

Потому что человек пишет бред вместо кода, так как не знает формата анализируемой строки.

atomo2
Offline
Зарегистрирован: 02.06.2021

b707 пишет:

atomo2 пишет:

 

Спасибо большое) время выдает, а вот сам вес нет

сорри, не заметил что код alexbnd разместил... иначе бы не спрашивал.

Можно маленькую подсказку?)

b707
Offline
Зарегистрирован: 26.05.2017

sadman41 пишет:
Потому что человек пишет бред вместо кода, так как не знает формата анализируемой строки.

не поэтому , а потому что это alexbmd. когда он писал что-то. кроме бреда? :) Он в принципе не понимает логики программного кода и этот скетч - замечательный пример этому.

 

b707
Offline
Зарегистрирован: 26.05.2017

atomo2][quote=b707 пишет:

Можно маленькую подсказку?)

можно.

Возьмите тот пример, что у вас в #30 и сравните с соответвующем местом кода #31/ Если смотреть вдумчиво. вы увидите какой строчки не хвататет в #31

Код #39 вообще не смотрите.

atomo2
Offline
Зарегистрирован: 02.06.2021

b707] </p> <p>[quote=atomo2 пишет:
b707 пишет:

Можно маленькую подсказку?)

можно.

Возьмите тот пример, что у вас в #30 и сравните с соответвующем местом кода #31/ Если смотреть вдумчиво. вы увидите какой строчки не хвататет в #31

Код #39 вообще не смотрите.

Прошу прощения)) точно строчки 30 и 31 моего самого первого сообщения?)

b707
Offline
Зарегистрирован: 26.05.2017

atomo2][quote=b707 пишет:

[Прошу прощения)) точно строчки 30 и 31 моего самого первого сообщения?)

нет, коды в сообщениях 30 и 31

Совсем уж подскажу - насколько я вижу , в коде #31 не хвататет одной строки для счастья :) ... хотя не исключено. что какой-нить косяк я просмотрел

atomo2
Offline
Зарегистрирован: 02.06.2021

b707] </p> <p>[quote=atomo2 пишет:
b707 пишет:

[Прошу прощения)) точно строчки 30 и 31 моего самого первого сообщения?)

нет, коды в сообщениях 30 и 31

Совсем уж подскажу - насколько я вижу , в коде #31 не хвататет одной строки для счастья :) ... хотя не исключено. что какой-нить косяк я просмотрел


mySerial.write(buff) оно?)

b707
Offline
Зарегистрирован: 26.05.2017

atomo2 пишет:
mySerial.write(buff) оно?)

пробуйте

atomo2
Offline
Зарегистрирован: 02.06.2021

b707 пишет:

atomo2 пишет:
mySerial.write(buff) оно?)

пробуйте

Все огонь работает))) спасибо большое) Единственное пишет  и букву S тоже, ну да ладно с ней

-000.0006 G S21:28:41 

#include "microDS3231.h"
MicroDS3231 rtc;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
#include "sav_button.h"
SButton button1(4,50,2000,4000,1000);
SButton button2(3,50,2000,4000,1000);

void setup(){
   
   Serial.begin(9600);
   mySerial.begin(9600);

   button1.begin();
   button2.begin();
   
   if (rtc.lostPower()) { 
   rtc.setTime(COMPILE_TIME);
 }
  //rtc.setTime(SEC, MIN, HOUR, DAY, MONTH, YEAR); // устанвока времени вручную
}
void loop(){
     
if (Serial.available()){
    
 
    int buff = Serial.read();
    mySerial.write(buff);
    if (buff == 'S') {
    mySerial.print(rtc.getHours());
    mySerial.print(":");
    mySerial.print(rtc.getMinutes());
    mySerial.print(":");
    mySerial.print(rtc.getSeconds());
    mySerial.print(" ");   
    } }

      switch( button1.Loop() ){
      case SB_CLICK:
           mySerial.print("***************\r\nBW-60RB\r\nS/N: 014330529\r\n\r\nSTART TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\n");
            break;
      case SB_LONG_CLICK:
           mySerial.println("Speed 9600");
           break;
       
   }
   switch( button2.Loop() ){
      case SB_CLICK:
         mySerial.print("\r\nEND TIME: ");
            mySerial.print(rtc.getHours());
            mySerial.print(":");
            mySerial.print(rtc.getMinutes());
            mySerial.print(":");
            mySerial.print(rtc.getSeconds());
            mySerial.print("\r\nDATE:");
            mySerial.print(" ");
            mySerial.print(rtc.getDate());
            mySerial.print("/");
            mySerial.print(rtc.getMonth());
            mySerial.print("/");
            mySerial.println(rtc.getYear());
            mySerial.print("\r\nSIGNATURE\r\n***************");
            
            break;
      case SB_LONG_CLICK:
         mySerial.println("Organika");
         break;
     }
}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Если S нужно прибить, то изучайте else для if.