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

 
 
> tick_10=0; не обнуляет переменную
Dzhesertep
сообщение May 12 2010, 17:58
Сообщение #1





Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dzhesertep
сообщение May 14 2010, 22:20
Сообщение #2





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



Ну вот так сложилось, что на уарт строчку надо отослать каждые 10 секунд, а так получается, что программа может хоть до бесконечности находиться в одном из циклов while. Вот и приходится отсылать в прерываниии. Был конечно вариант в каждый из таких циклов вставлять проверку флага и отправку, но времени его реализовывать не было, так как рабочий образец нужен был прямо сейчас. Сейчас же это перешло уже скорее в вопрос принципа, почему же происходит баг с обнулением, а не того как правильно и аккуратно писать программы.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 15 2010, 07:59
Сообщение #3


неотягощённый злом
******

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



Цитата(Dzhesertep @ May 15 2010, 01:14) *
Ну память видимо стековая-это наиболее вероятно так.
Ржу не могу - гадание на картах Таро прямо-таки!
Цитата(Dzhesertep @ May 15 2010, 02:20) *
почему же происходит баг с обнулением, а не того как правильно и аккуратно писать программы.
Правильно расставьте приоритеты и поймите что есть причина, а что следствие.
Хочется долбиться об стену - пожалуйста, но стоит помнить, что сумасшествие дело глубоко интимное и не стоит всех и каждого "озарять" потоком своего мутного сознания.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Dzhesertep
сообщение May 15 2010, 09:09
Сообщение #4





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



Цитата(demiurg_spb @ May 15 2010, 11:59) *
Правильно расставьте приоритеты и поймите что есть причина, а что следствие.


Неоптимальный код, строго говоря, не должен быть причиной указанного в теме бага. А на данный момент код неоптимальный, но не было доказанно, что он-неправильный. Так что с расстановкой приоритетов у меня всё в порядке.

Сообщение отредактировал Dzhesertep - May 15 2010, 09:09
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:24
Рейтинг@Mail.ru


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