14.04.2013, 16:40
|
#621
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от stmfaq
|
Может наоборот, глобальные переменные не обнуляются. ... Но похоже что в IAR все не так, и противоречит стандартам Си.
|
Вы просто не знаете языка Си и неверно понимаете то, что успели по нему прочесть. А кроме того, очень смутно представляете себе процесс исполнения программы. Без, хотя бы базовых, представлений об этом, будет затруднительно Вам помочь. Вот Вы отвели под переменную некоторую ячейку памяти, затем периодически изменяете в ней значение ("bb++;") а между этими моментами ожидаете, что в ней будет 0... А кто этот 0 должен туда всякий раз записывать - Пушкин?
_______________________________________________
Upd:
Сообщение от andries5
|
При создании локальной переменной она получает случайное значение.
|
Сообщение от stmfaq
|
Не в моем случае , я же написал что при повторном вызове функции у переменной оставалось значение предыдущего результата, это меня и смутило.
|
andries5, не вводите начинающего в заблуждение неудачными цитатами - при создании локальной переменной, она не получает никакого значения!
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 14.04.2013 в 16:47.
|
|
|
|
14.04.2013, 16:45
|
#622
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Да с нулем все понятно, вы мне объясните почему значения у локальной переменной остается тоже что было в предыдущем вызове? Модификатор static уже не нужен?
|
|
|
|
14.04.2013, 16:47
|
#623
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,799
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от tempora
|
Вот Вы отвели под переменную некоторую ячеку памяти, затем периодически изменяете в ней значение
|
Вот потому и сохраняется предыдущее значение аа. Если бы в другом месте программы создавалась бы другая локальная переменная, то при освобождении предыдущей это место в памяти может занять новая и получить значение предыдущей. Как то так.
|
|
|
|
14.04.2013, 16:55
|
#624
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Ладно фиг с ним, главное что теперь все нормально работает.
Теперь другой вопрос , программного характера , по UART приходят данные 13, 48, 11, в результате мне нужно из этого получить значение 134811 для присвоения переменной unsigned int. Как это максимально быстро сделать? нужно конвертировать данные в потоке.
|
|
|
|
14.04.2013, 16:55
|
#625
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от andries5
|
Сообщение от tempora
|
Вот Вы отвели под переменную некоторую ячейку памяти, затем периодически изменяете в ней значение
|
Вот потому и сохраняется предыдущее значение аа.
|
Нет, сохраняется не по этой причине.
Сообщение от andries5
|
Как то так.
|
Будет лучше, если stmfaq изучит вопрос по более чётким источникам.
__________________
There's always more than one way to skin a cat.
|
|
|
|
14.04.2013, 16:56
|
#626
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,542
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от stmfaq
|
Да с нулем все понятно, вы мне объясните почему значения у локальной переменной остается тоже что было в предыдущем вызове? Модификатор static уже не нужен?
|
Поскольку при создании значение не присваивается, оно случайно. А точнее - там лежит то значение, которое туда положили при предыдущем использовании этого места памяти. Если кроме этой переменной этим местом никто не пользуется, то и значение от создания до создания меняться не будет - это от лукавого (компилятора).
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
14.04.2013, 16:58
|
#627
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: FAQ по STM8
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 14.04.2013 в 17:07.
|
|
|
|
14.04.2013, 17:10
|
#628
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
А что по поводу этого ? Кто какой метод посоветует ?
Сообщение от stmfaq
|
Теперь другой вопрос , программного характера , по UART приходят данные 13, 48, 11, в результате мне нужно из этого получить значение 134811 для присвоения переменной unsigned int. Как это максимально быстро сделать? нужно конвертировать данные в потоке.
|
|
|
|
|
14.04.2013, 17:12
|
#629
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от stmfaq
|
А что по поводу этого ? Кто какой метод посоветует ?
|
Сложение и сдвиг влево?
ЗЫ:Все эти вопросы не имеют никакого отношения к теме топика, скоро тут нельзя будет найти полезную информацию по теме.
|
|
|
|
14.04.2013, 17:17
|
#630
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от Ara41
|
скоро тут нельзя будет найти полезную информацию по теме.
|
Надо просить админа , если возможно, сделать подфорумы - ARM,PIC,AVR,STM8.
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:39.
|
|