Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Bascom-GSM-M10, GSM контроллер 
:(
    Опции темы
Actionman
Дата 4.12.2011, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 5.4.2011

Репутация: нет
Всего: нет



Привет всем! Столкнулся с такой проблемой. Делаю GSM  контроллер, вроде бы все отлично, все работает, ....да не все. Посылаю смс с командой, отвечает нормально. При посылке неправильно написанной команды устройство виснет. Вводил в цикл  сравнения команд ( select- case -case else) case else конструкцию, то при получении любого смс, контроллер  посылал мне сообщение о неправильной команде. 

Код

 Select Case Command_rx

            Case "cmd1"
            Incr K1
            If K1 = 1 Then
             Set Relay1
             Relay1_status = "Relay1-on"
            Elseif K1 = 2 Then
             Reset Relay1
             Relay1_status = "Relay1-off"
             K1 = 0
            End If
             Command_tx(1) = Relay1_status
             Command_tx(2) = Relay2_status
             Command_tx(3) = Relay3_status
             Command_tx(4) = Relay4_status
             Call Delete_sms
               Call Send_sms


            Case "cmd2"
            Incr K2
            If K2 = 1 Then
             Set Relay2
             Relay2_status = "Relay2-on"
            Elseif K2 = 2 Then
             Reset Relay2
             Relay2_status = "Relay2-off"
             K2 = 0
            End If
             Command_tx(1) = Relay1_status
             Command_tx(2) = Relay2_status
             Command_tx(3) = Relay3_status
             Command_tx(4) = Relay4_status
             Call Delete_sms
               Call Send_sms


            Case "cmd3"
            Incr K3
            If K3 = 1 Then
             Set Relay3
             Relay3_status = "Relay3-on"
            Elseif K3 = 2 Then
             Reset Relay3
             Relay3_status = "Relay3-off"
             K3 = 0
            End If
             Command_tx(1) = Relay1_status
             Command_tx(2) = Relay2_status
             Command_tx(3) = Relay3_status
             Command_tx(4) = Relay4_status
             Call Delete_sms
               Call Send_sms


            Case "cmd4"
            Incr K4
            If K4 = 1 Then
             Set Relay4
             Relay4_status = "Relay4-on"
            Elseif K4 = 2 Then
             Reset Relay4
             Relay4_status = "Relay4-off"
             K4 = 0
            End If
             Command_tx(1) = Relay1_status
             Command_tx(2) = Relay2_status
             Command_tx(3) = Relay3_status
             Command_tx(4) = Relay4_status
             Call Delete_sms
               Call Send_sms


            Case "status"
             Command_tx(1) = Relay1_status
             Command_tx(2) = Relay2_status
             Command_tx(3) = Relay3_status
             Command_tx(4) = Relay4_status
             Call Delete_sms
                Call Send_sms


            Case "adc"
            Call Delete_sms
             Call Get_adc
               Call Send_sms


            Case "balans"
             Call Delete_sms
              Call Get_balans


             Case "temp1"
              Call Delete_sms
               Call Get_temper
                Command_tx(1) = Temperatura
                 Call Send_sms

----------------------------------------------------------------------
            Case Else
              Call Delete_sms
               Command_tx(1) = "ERROR COMMAND!"   
                 Call Send_sms
 ' в данном месте и происходит тот самый косяк! хотя вроде строка содержащая
 команду не содержит левых символов, я пробывал и обрезать и 
цикл if-then -else, все в бестолку

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


           End Select




процедура приема строки уарт как и различных примерах:
Код

Sub Getline
Command_rx = ""
Do
    J = Inkey()
    Select Case J
       Case 0
       Case 13
       Case 10 : If Command_rx <> "" Then Exit Do           'ЖДЕМ СИМВОЛ
       Case Else
       Command_rx = Command_rx + Chr(j)                     ' СОСТАВИМ СТРОКУ
    End Select
Loop
End Sub


Это сообщение отредактировал(а) Actionman - 4.12.2011, 19:43
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0376 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.