|
tick_10=0; не обнуляет переменную |
|
|
|
May 12 2010, 17:58
|
Группа: Участник
Сообщений: 11
Регистрация: 12-05-10
Пользователь №: 57 222

|
Прямое обнуление volatile переменных не работает, использую Winavr 20100110, дебаггера в данный момент нет, так что посмотреть что именно происходить с контроллером проблематично. После операции вида volatile unsigned char Temporary=0; переменной присваивается единица. Компилятор выдаёт следующее: tick_10=0;
a00: 10 92 e4 01 sts 0x01E4, r1
volatile unsigned char Temporary=0; 3d2: 19 82 std Y+1, r1 ; 0x01
При этом не нашел ни одной операции, которая бы инкримировала r1, при этом tick_10 обнуляется в прерывании и после сохранения реггистров идет команда 894: 11 24 eor r1, r1 так что в r1 просто обязан быть 0.
Сообщение отредактировал Dzhesertep - May 12 2010, 18:00
|
|
|
|
|
 |
Ответов
|
May 14 2010, 22:20
|
Группа: Участник
Сообщений: 11
Регистрация: 12-05-10
Пользователь №: 57 222

|
Ну вот так сложилось, что на уарт строчку надо отослать каждые 10 секунд, а так получается, что программа может хоть до бесконечности находиться в одном из циклов while. Вот и приходится отсылать в прерываниии. Был конечно вариант в каждый из таких циклов вставлять проверку флага и отправку, но времени его реализовывать не было, так как рабочий образец нужен был прямо сейчас. Сейчас же это перешло уже скорее в вопрос принципа, почему же происходит баг с обнулением, а не того как правильно и аккуратно писать программы.
|
|
|
|
|
May 15 2010, 07:59
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Dzhesertep @ May 15 2010, 01:14)  Ну память видимо стековая-это наиболее вероятно так. Ржу не могу - гадание на картах Таро прямо-таки! Цитата(Dzhesertep @ May 15 2010, 02:20)  почему же происходит баг с обнулением, а не того как правильно и аккуратно писать программы. Правильно расставьте приоритеты и поймите что есть причина, а что следствие. Хочется долбиться об стену - пожалуйста, но стоит помнить, что сумасшествие дело глубоко интимное и не стоит всех и каждого "озарять" потоком своего мутного сознания.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
May 15 2010, 09:09
|
Группа: Участник
Сообщений: 11
Регистрация: 12-05-10
Пользователь №: 57 222

|
Цитата(demiurg_spb @ May 15 2010, 11:59)  Правильно расставьте приоритеты и поймите что есть причина, а что следствие. Неоптимальный код, строго говоря, не должен быть причиной указанного в теме бага. А на данный момент код неоптимальный, но не было доказанно, что он-неправильный. Так что с расстановкой приоритетов у меня всё в порядке.
Сообщение отредактировал Dzhesertep - May 15 2010, 09:09
|
|
|
|
Сообщений в этой теме
Dzhesertep tick_10=0; не обнуляет переменную May 12 2010, 17:58 SysRq Цитата(Dzhesertep @ May 12 2010, 21:58) .... May 12 2010, 18:34 Dzhesertep Цитата(SysRq @ May 12 2010, 22:34) А как ... May 12 2010, 19:02 SasaVitebsk Цитата(Dzhesertep @ May 12 2010, 20:58) П... May 12 2010, 19:33 Savrik так-так-так... tick_10 и Temporary глобальные пере... May 12 2010, 19:35 Dzhesertep Цитата(Savrik @ May 12 2010, 23:35) так-т... May 12 2010, 20:20  demiurg_spb Цитата(Dzhesertep @ May 13 2010, 00:20) К... May 13 2010, 13:22   Dzhesertep Цитата(demiurg_spb @ May 13 2010, 17:22) ... May 13 2010, 16:11    demiurg_spb Цитата(Dzhesertep @ May 13 2010, 20:11) Н... May 14 2010, 09:19     Dzhesertep Цитата(demiurg_spb @ May 14 2010, 13:19) ... May 14 2010, 13:43      demiurg_spb Цитата(Dzhesertep @ May 14 2010, 17:43) P... May 14 2010, 16:16    xemul Цитата(Dzhesertep @ May 13 2010, 20:11) Н... May 14 2010, 13:02     Dzhesertep Цитата(xemul @ May 14 2010, 17:02) Нелоги... May 14 2010, 19:31      demiurg_spb Цитата(Dzhesertep @ May 14 2010, 23:31) А... May 14 2010, 20:14      rezident Цитата(Dzhesertep @ May 15 2010, 01:31) В... May 14 2010, 20:15       Dzhesertep Цитата(rezident @ May 15 2010, 00:15) dem... May 14 2010, 20:57        rezident Цитата(Dzhesertep @ May 15 2010, 02:50) А... May 14 2010, 21:01         Dzhesertep Цитата(rezident @ May 15 2010, 01:01) Вот... May 14 2010, 21:14          rezident Цитата(Dzhesertep @ May 15 2010, 03:14) З... May 14 2010, 21:29 SysRq Цитата(Dzhesertep @ May 12 2010, 23:02) К... May 13 2010, 16:02   Dzhesertep Всё, тему можно закрывать, нашлась именно ошибка, ... May 15 2010, 14:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|