реклама на сайте
подробности

 
 
> Внутри Case не присваивается значение глобальной переменной, При вызове функции внутри Case
Димон Безпарольн...
сообщение Jul 31 2017, 13:07
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



Весьма запутано, постараюсь объяснить.

Код
            case(OpenTCP):                        //Открытие TCP
                {                                //
                    printf("\rOpen TCP Session\r");//    
                    GSM_State_Mashine = ConnMQTT;//Успешно
                    GSM_Mashine_Errors = 0;        //
                    int T =    GPRSConnect1(TCP, MQTT_BROKER_SERVER, PORT, DEFAULT_TIMEOUT*8, DEFAULT_INTERCHAR_TIMEOUT*5);
                    if(!T)                         //
                        {                        //Не успешно
                            printf("\rError TCP Open... Try Again...\r");//    
                            int T =    GPRSClose();//
                            GSM_Mashine_Errors++;//
                            break;                //
                        }                        //
                    GSM_State_Mashine = ConnMQTT;//Успешно
                    GSM_Mashine_Errors = 0;        //
                    printf("\rTCP Session Open\r");//
                    break;                        //


Если ставить GSM_State_Mashine = ConnMQTT после вызова GPRSConnect1, то в переменной GSM_State_Mashine остается старое значение и этот case выполняется вечно.

Сама функция GPRSConnect1 и вызываемые ей функции никакого отношения к переменной GSM_State_Mashine не имеет. Причем перед выходом из функции, содержащей этот switch (GSM_State_Mashine) присвоение есть, но за ней (снаружи этой функции) эта переменная имеет старое значение!

Пока вышел из положения присваивая значение GSM_State_Mashine = ConnMQTT; до вызова функции. Так работает. После вызова - нет. Что ж за глюк такой?

Переменная объявлена глобальной volatile unsigned int GSM_State_Mashine = 0;//

Сообщение отредактировал Димон Безпарольный - Jul 31 2017, 13:10
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Димон Безпарольный   Внутри Case не присваивается значение глобальной переменной   Jul 31 2017, 13:07
- - alexey123_45   А если в этом case поставить точку останова и пойт...   Jul 31 2017, 13:36
|- - Димон Безпарольный   Цитата(alexey123_45 @ Jul 31 2017, 17:36)...   Jul 31 2017, 15:11
- - kolobok0   Цитата(Димон Безпарольный @ Jul 31 2017, 16...   Jul 31 2017, 17:18
- - scifi   Напрашивается поставить на эту переменную watchpoi...   Jul 31 2017, 17:52
- - iosifk   Цитата(Димон Безпарольный @ Jul 31 2017, 16...   Jul 31 2017, 19:17
|- - Димон Безпарольный   Цитата(iosifk @ Jul 31 2017, 23:17) Ведь ...   Jul 31 2017, 19:35
|- - aaarrr   Цитата(iosifk @ Jul 31 2017, 22:17) А что...   Jul 31 2017, 20:53
|- - andrew_b   Цитата(iosifk @ Jul 31 2017, 22:17) Ведь ...   Aug 1 2017, 05:28
|- - Kabdim   Цитата(iosifk @ Jul 31 2017, 22:17) Ведь ...   Aug 1 2017, 09:37
|- - Димон Безпарольный   Цитата(Kabdim @ Aug 1 2017, 13:37) Либо U...   Aug 1 2017, 11:39
|- - Kabdim   Цитата(Димон Безпарольный @ Aug 1 2017, 14...   Aug 1 2017, 13:37
|- - Димон Безпарольный   Цитата(Kabdim @ Aug 1 2017, 17:37) Кстати...   Aug 1 2017, 14:36
|- - tvsdig   Теоретически может еще влиять включенная оптимизац...   Aug 1 2017, 19:54
|- - aaarrr   Цитата(tvsdig @ Aug 1 2017, 22:54) Теорет...   Aug 1 2017, 20:35
||- - AVI-crak   Кодcase(OpenTCP): //Открытие TCP ...   Aug 1 2017, 20:48
|- - Kabdim   Цитата(tvsdig @ Aug 1 2017, 22:54) Теорет...   Aug 2 2017, 09:29
|- - tvsdig   Цитата(Kabdim @ Aug 2 2017, 12:29) Не ста...   Aug 2 2017, 14:54
|- - Kabdim   Цитата(tvsdig @ Aug 2 2017, 17:54) Стараю...   Aug 2 2017, 15:10
- - Obam   А где здесь ARM? Треду именно что место в темах пр...   Aug 1 2017, 08:16
- - Aaron   берите map-файл проекта с расположением переменных...   Aug 1 2017, 12:29
- - KnightIgor   Цитата(Димон Безпарольный @ Jul 31 2017, 14...   Aug 2 2017, 15:19
- - x893   Это обсуждение курсовой 2 курса ? Какая то чушь. ...   Aug 2 2017, 15:30
- - Димон Безпарольный   Не оптимизация и ничего таккого. В функции GPRSCon...   Aug 6 2017, 15:04
- - Kabdim   Говнокод из интернета, экономия на спичках байтах,...   Aug 6 2017, 20:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 20:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016