Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Странности отладчика в AVR studio

Непрочитано 09.05.2011, 20:52  
anrkaid
Частый гость
 
Регистрация: 17.12.2010
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
anrkaid на пути к лучшему
По умолчанию Странности отладчика в AVR studio

Только недавно начал писать код в этой студии (версия 4). Студи глючновата (watch криво работают), но в общем-то работает. При отладке вывилась какая-то програмная аномалия:

есть код такого содержания

Код:
void handleExternalInterrupt(unsigned char intNumber) {
  unsigned char state = intNumber ? getbit(PIND, 3) : getbit(PIND, 2);
  .......
  ........
}

/**
 * External interrupt 0
 */
SIGNAL (SIG_INTERRUPT0) {
  handleExternalInterrupt(0);
}

/**
 * External interrupt 1
 */
SIGNAL (SIG_INTERRUPT1) {
  handleExternalInterrupt(1);
}
Так вот, при входе в ф-ю handleExternalInterrupt в watch параметр intNumber равен 104, окошко CPU показывает то же значение в регистре R28, что побуждает меня верить отладчику. Для студии нужен какокой-то особенный синтаксис, что я на так пишу?
Реклама:
anrkaid вне форума  
Сказали "Спасибо" anrkaid
warel (27.06.2019)
Непрочитано 09.05.2011, 21:51  
Beginner43
Частый гость
 
Регистрация: 04.01.2010
Адрес: Россия, Киров
Сообщений: 31
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
Beginner43 на пути к лучшему
По умолчанию Re: Странности отладчика в AVR studio

Когда вы пишите на языке среднего или высокого уровня, то предоставляете компилятору право выбирать самому регистры для переменных(как глобальных, так и локальных), поэтому ничего удивительного нет в том, что компилятор выбрал для хранения переменной intNumber регистр R28. Для полного контроля регистров пишите на Асме!)
Beginner43 вне форума  
Сказали "Спасибо" Beginner43
warel (27.06.2019)
Непрочитано 09.05.2011, 22:31  
anrkaid
Частый гость
 
Регистрация: 17.12.2010
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
anrkaid на пути к лучшему
По умолчанию Re: Странности отладчика в AVR studio

За ответ спасибо, но это-то я как раз понимаю, и в этом нет проблемы.
Проблема меня уже взбесила, где, черт возьми, моя единица??? Где мой ноль? Откуда берется это 104?
anrkaid вне форума  
Сказали "Спасибо" anrkaid
warel (27.06.2019)
Непрочитано 10.05.2011, 00:24  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Странности отладчика в AVR studio

А давайте листинг handleExternalInterrupt посмотрим.
kison вне форума  
Сказали "Спасибо" kison
warel (27.06.2019)
Непрочитано 10.05.2011, 18:57  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Странности отладчика в AVR studio

Сообщение от anrkaid Посмотреть сообщение
За ответ спасибо, но это-то я как раз понимаю, и в этом нет проблемы.
Проблема меня уже взбесила, где, черт возьми, моя единица??? Где мой ноль? Откуда берется это 104?
Про оптимизацию слышали?
Разве не проще выложить сокращенный (только то, что не работает) проект для студии?

Последний раз редактировалось CodeNameHawk; 10.05.2011 в 19:47.
CodeNameHawk вне форума  
Сказали "Спасибо" CodeNameHawk
warel (27.06.2019)
Непрочитано 10.05.2011, 20:01  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Странности отладчика в AVR studio

Вместо SIGNAL (SIG_INTERRUPT0) рекомендуется использовать конструкцию
Код:
ISR(ADC_vect)
{
// user code here
}
=GM= вне форума  
Сказали "Спасибо" =GM=
warel (27.06.2019)
Непрочитано 10.05.2011, 20:32  
anrkaid
Частый гость
 
Регистрация: 17.12.2010
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
anrkaid на пути к лучшему
По умолчанию Re: Странности отладчика в AVR studio

Сообщение от CodeNameHawk Посмотреть сообщение
Про оптимизацию слышали?
Разве не проще выложить сокращенный (только то, что не работает) проект для студии?
Я просто думал, что для AVR какой-нибудь ограниченный C, или я как-то не так писал.
Сейчас, в конце-концов, прерывание работает правильно, как ни странно. Почему заработало - пока понять не смог. Быть может это от того, что я симулировал схему одновременно со включенным протеусом...

Последний раз редактировалось anrkaid; 10.05.2011 в 20:35.
anrkaid вне форума  
Сказали "Спасибо" anrkaid
warel (27.06.2019)
Непрочитано 11.05.2011, 02:45  
Murka-MakMur
Вид на жительство
 
Аватар для Murka-MakMur
 
Регистрация: 05.09.2007
Адрес: Новороссия ЛНР Рубежное -> РФ Калуга
Сообщений: 363
Сказал спасибо: 10
Сказали Спасибо 74 раз(а) в 59 сообщении(ях)
Murka-MakMur на пути к лучшему
По умолчанию Re: Странности отладчика в AVR studio

Я чего-то не понимаю? Вы о Atmel AVRstudio говорите?
__________________
Политика России будет выглядеть неоднозначной до тех пор, пока не будет решен исход битвы.
Чем больше слёз тем больше облегчения, в слезах и заключается лечение.
Не зли меня
Murka-MakMur вне форума  
Сказали "Спасибо" Murka-MakMur
warel (27.06.2019)
Непрочитано 11.05.2011, 18:32  
Beginner43
Частый гость
 
Регистрация: 04.01.2010
Адрес: Россия, Киров
Сообщений: 31
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
Beginner43 на пути к лучшему
По умолчанию Re: Странности отладчика в AVR studio

По поводу передачи параметров в функцию подробно и доступно можно прочитать здесьhttp://citforum.ru/programming/c/h15.shtml.
Beginner43 вне форума  
Сказали "Спасибо" Beginner43
warel (27.06.2019)
Непрочитано 11.05.2011, 20:24  
anrkaid
Частый гость
 
Регистрация: 17.12.2010
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
anrkaid на пути к лучшему
По умолчанию Re: Странности отладчика в AVR studio

Да нет, с этим у меня все в порядке. Но. Проблемы не ждут! Чтобы не создавать тему спрошу тут.
Итак, с кнопками я разобрался, приступил к ADC. Худо-бедно настроил, вот так:
Цитата:
ADMUX = 0b01000111;
_delay_us(10);
ADCSRA = 0b10100111; // free run mode, no interrups, division factor = 128
_delay_us(10);
ADCSRA |= 0b01000000; // start conversion
Есои включить прерывание, то оно работает, т.е. конвертер как-то, но работает. Вот только значения выдает странные, а именно: в ADCL и ADCH записано 0x03FF, независимо от напруги на ножке. Максимум. Протеус много ругается, говорит что Reference value = 0. Возможно, я как-то не так подключил AREF, схема выглядит так:

Контроллер mega8L.
P.S. много гуглил. По всей видимости - это бага протеуса. Ну хоть схема-то у меня нормальная?

Последний раз редактировалось anrkaid; 11.05.2011 в 23:08.
anrkaid вне форума  
Сказали "Спасибо" anrkaid
warel (27.06.2019)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На WinAVR + AVR Studio c CVAVR Vetal-soft Embedd С 87 03.03.2013 20:31
Как подружить AVR Studio и Proteus? Serge_Serge_ Proteus 27 13.12.2011 20:44
Codevision AVR + AVR Studio помогите разобраться с отладкой Daget Микроконтроллеры, АЦП, память и т.д 24 07.03.2011 14:41
Как в AVR Studio для программы на ассемблере указать "к Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 4 04.03.2008 14:54
AVR Studio 4 + wingcc = глюк? nixsys Микроконтроллеры, АЦП, память и т.д 12 27.03.2006 14:36


Часовой пояс GMT +4, время: 17:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.