Выделенное красным - добавить, но прописать нужные имена переменных, которые действуют в вашей программе.
Выделенное синим - удалить, эти шаги выполняются в другом месте.
Выделенное зеленым - не для форума 
Do
If Флаг_есть_принятое_сообщ_usart = 1 Then
Temper1 = Left(stroka , 4) : Temper2 = Mid(stroka , 5 , 3) : Crcrx = Right(stroka , 7)
Crc = Temper1 + Temper2
Temp1 = Val(temper1) : Temp2 = Val(temper2)
If Temp1 > 800 And Zero <> 0 Then Gosub Обнуление 'Если проебаны шаги
If Crc = Crcrx Then
Положение = Temp1 * 35
Положение = Положение / 10 'Грубо 800 * 3,5 = 2800 шагов. Где 800 это 80,0 градуса Цельсия
Положение = 2800 - Положение 'Инвертируем показания мин Т заслонка открыта
If Положение > 2800 Then Положение = 0 'Нет отрицательным величинам более 80,0
Угол = Положение / 30 '2750 Это 90 Градусов для Индикации
Gosub Indikator
If Шаги < Положение Then Gosub Plus
If Шаги > Положение Then Gosub Minus
Буфер_приема_usart_str = "" ' Чистим буфер приёма
Enable Urxc ' Включаем приём
End If
End IfWaitms 200
Loop
'******************************************************************************************
....
....
....
'======Если пришло по USART=============================================
Reads:
Принятый_символ = Udr
If Принятый_символ <> 10 Then
If Принятый_символ <> 13 Then Буфер_приема = Буфер_приема + Chr(принятый_символ)
Stroka = Буфер_приема
Буфер_приема = ""
Incr Счетчик_принятых_символов ' Считаем количество принятых символов
Else ' Иначе выключаем приём и ставим метку, что приём закончен (принято всё сообщение), можно что-то делать с принятым
Disable Urxc ' Выключаем приём, пока не обработаем принятое сообщение
Счетчик_принятых_символов = 0 ' Сбрасываем счётчик символов, готовим к следующему приёму
Флаг_есть_принятое_сообщ_usart = 1 ' Если символ оказался "Enter", тогда флаг
' устанавливаем в 1. "Enter"- конец сообщения
End If
Return
Отредактировано Nord (2019-06-24 09:40:29)



