Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Proteus ошибки во время отладки

Непрочитано 08.02.2012, 22:50  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Proteus ошибки во время отладки

При отладке нахожу немало ошибок работы протеуса.

Вот пример одной из ошибок.
Есть простенькая программка :
Код:
#include ‹avr/io.h›
#include ‹avr/eeprom.h›

struct summa
{
uint8_t temp1;
uint8_t temp2;
uint8_t temp3;
uint8_t temp4;
};

struct summa temp_sum;

EEMEM struct summa proba1;

//main
int main(void)
{
	eeprom_read_block(&temp_sum, &proba1, 4);
	temp_sum.temp1 = 1;
	temp_sum.temp2 = 2;
	temp_sum.temp3 = 3;
	temp_sum.temp4 = 4;
	eeprom_write_block(&temp_sum, &proba1, 4);
	while (1)
	{
		temp_sum.temp3 = temp_sum.temp3 + 1;
	}
}
Первая неточность:
Нажмите на изображение для увеличения
Название: eeprom_read.JPG
Просмотров: 157
Размер:	344.1 Кб
ID:	31501
Выполнили eeprom_read_block(&temp_sum, &proba1, 4);
в окне переменных видно, что уже залезли на proba1.temp1
это ладно.

Но при записи уже видна ошибка:
Нажмите на изображение для увеличения
Название: eeprom_write.JPG
Просмотров: 69
Размер:	343.2 Кб
ID:	31502
четвертый байт не был записан.

Выкладываю весь проект at16eeprom.rar
попробуйте у себя.

А вопрос в том, вы при работе с программой тоже замечаете похожие ошибки?
Заинтересованы ли авторы программы в информации об ошибках.
Реклама:

Последний раз редактировалось CodeNameHawk; 08.02.2012 в 23:39.
CodeNameHawk вне форума  
Непрочитано 09.02.2012, 23:14  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,693
Сказал спасибо: 28
Сказали Спасибо 4,526 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: Proteus ошибки во время отладки

Что то тут у вас не так. Как то коряво. Времени на детальную разборку нет, но похоже опять чужие шишки сыпятся на голову Протеуса.
Как у вас с языком, владеете? Ну, в смысле, не марки на конверты наклеивать... Попробуйте разгрести сами, а в качестве подспорья есть вот такой, довольно "свежий" документик (англ).
Вложения:
Тип файла: pdf EEPROM.pdf (153.1 Кб, 150 просмотров)
Halex07 вне форума  
Сказали "Спасибо" Halex07
CodeNameHawk (10.02.2012)
Непрочитано 09.02.2012, 23:36  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Proteus ошибки во время отладки

Цитата:
но похоже опять чужие шишки сыпятся на голову Протеуса.
Даже если учесть, что приведенный код прекрасно работает в железе да и отладка в AVR studio идет на ура?
CodeNameHawk вне форума  
Непрочитано 09.02.2012, 23:36  
Ara41
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.09.2006
Сообщений: 1,557
Сказал спасибо: 157
Сказали Спасибо 660 раз(а) в 430 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: Proteus ошибки во время отладки

eeprom_write_block(&proba1, &temp_sum, 4);
Вроде так надо, судя по выложенному выше мануалу
Ara41 вне форума  
Непрочитано 09.02.2012, 23:51  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Proteus ошибки во время отладки

Цитата:
При отладке нахожу немало ошибок работы протеуса.
Практически все подобные "открытия" выливались в не компетенцию заявителя.

Сообщение от CodeNameHawk Посмотреть сообщение
Даже если учесть, что приведенный код прекрасно работает в железе да и отладка в AVR studio идет на ура?
Да ? А как быть с этим ????
PHP код:
void eeprom_read_block (void *pointer_ram , const void *pointer_eeprom , size_t n)
void eeprom_write_block (void *pointer_eeprom , const void *pointer_ram , size_t n) 
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 09.02.2012, 23:54  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Proteus ошибки во время отладки

Нет, не так.
Цитата:
void eeprom_write_block ( const void * __src,
void * __dst,
size_t __n
)

Write a block of __n bytes to EEPROM address __dst from __src.
По умному
Код:
eeprom_read_block((void*)&temp_sum, (const void*)&proba1, 4);
eeprom_write_block((const void*)&temp_sum, (void*)&proba1, 4);
типа так.
p.s. Это я отвечал на вопрос выше, но он подошел и на ваш вопрос.

Последний раз редактировалось CodeNameHawk; 09.02.2012 в 23:57.
CodeNameHawk вне форума  
Непрочитано 10.02.2012, 00:03  
Ara41
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.09.2006
Сообщений: 1,557
Сказал спасибо: 157
Сказали Спасибо 660 раз(а) в 430 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: Proteus ошибки во время отладки

значит какой-то из мануалов ошибается. Перекомпильте - и узнаем какой именно. Лениво ставить студию.
ЗЫ: я не задавал вопрос
Ara41 вне форума  
Непрочитано 10.02.2012, 00:06  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Proteus ошибки во время отладки

Сообщение от Ara41 Посмотреть сообщение
значит какой-то из мануалов ошибается. Перекомпильте - и узнаем какой именно. Лениво ставить студию.
ЗЫ: я не задавал вопрос
После перекомпиляции ничего не поменялось.

Сообщение от dosikus Посмотреть сообщение
Да ? А как быть с этим ????
PHP код:
void eeprom_read_block (void *pointer_ram , const void *pointer_eeprom , size_t n)
void eeprom_write_block (void *pointer_eeprom , const void *pointer_ram , size_t n)
Здесь все как в мануале,(как и у меня в программе) не вижу никаких различий.

Последний раз редактировалось CodeNameHawk; 10.02.2012 в 01:25.
CodeNameHawk вне форума  
Непрочитано 10.02.2012, 00:57  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Proteus ошибки во время отладки

Сообщение от dosikus Посмотреть сообщение
Практически все подобные "открытия" выливались в не компетенцию заявителя.
Из последних ошибок. (есть и другие ошибки)
Код:
#include ‹avr/io.h›
#include ‹avr/interrupt.h›

ISR(TIMER0_COMP_vect) 
{
	PORTA |= 1‹‹PA0;
	TCCR0 = 0; //stop timer0
}

ISR(TIMER0_OVF_vect)
{
	PORTA |= 1‹‹PA1;
	TCCR0 = 0; //stop timer0
}

//main
int main(void)
{

	DDRA = 0xFF;
		
    TIMSK |= 1 ‹‹ OCIE0 | 1 ‹‹ TOIE0; 		//compare timer0 i overlov
	
	OCR0  = 235; 							//ustanovka nachalnogo znachenija     OCR0 == 235
	TCNT0 = 215; 							//ustanovka nachalnogo znachenija taimera0 == 215 

	sei();
	
	TCCR0 = 1 ‹‹ CS00; 						//zapustit timer0 clk_io/1

	while (1)
	{
	}
}
В протеусе первой происходит прерывание TIMER0_OVF_vect, хотя обязанно быть TIMER0_COMP_vect.
(Тут уточню, что это обязанно быть, если атмеловцы не ошиблись в своей студии и в готовых процессорах.)

И как всегда, уважая время других, код проекта
at16_comp.rar

Последний раз редактировалось CodeNameHawk; 10.02.2012 в 01:14.
CodeNameHawk вне форума  
Непрочитано 10.02.2012, 07:54  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,693
Сказал спасибо: 28
Сказали Спасибо 4,526 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: Proteus ошибки во время отладки

Сообщение от CodeNameHawk Посмотреть сообщение
Даже если учесть, что приведенный код прекрасно работает в железе да и отладка в AVR studio идет на ура?
Насчет "железа" отвечу так:
-В железе и молоток - выпрямляющий девайс. Попробуйте спаять выпрямительный мостик из молотков.
Ну почему, стоит только в чем-то усомниться, сразу поднимают вой про "железо". Только недавно по соседству была "разборка" по поводу ASM библы для HD44780 с Easy Electronics Итог этого разбирательства здесь..
А ведь тоже у автора в железе шло "на ура", а в Протеусе выяснилось, что два операнда явно переставлены местами. А ведь это низкоуровневый ASM, а не Си, в котором после нас компилятор черт его знает по чьему мановению (ну точнее создателя) может поставить все с ног на голову.
А засомневался я как раз по второму поводу, что ваш пример, перекомпилированный в АВР студии в связке с Протеусом идет "на ура" (скриншот). А поскольку я знаю, что WinAVR от версиик версии может здорово отличаться (из-за чего видно и засомневался Ara41 - в старых версиях SOURCE и DESTINATION во write_block были как у него) я и предложил попробовать вам разобраться самому. У меня просто полный цейтнот и посидеть подольше над отладкой некогда.
ЗЫ! Все, понял в чем собака порылась. Пока сидел, ждал подъезжающую машину, успел еще раз заглянуть в ваш пример. Вы, в частности, в скриншоте 2 не учли "причуды" анимации ISIS. Я об этом писал в FAQ. Ваша картинка содержимого EEPROM соответствует предыдущему кадру анимации, т.е. байт по адресу 0x03 не попал в этот кадр. Делаем еще шаг кнопкой STEP внизу слева - переходим в следующий кадр и он уже равен 04, как и положено. А если зайти в Configure Diagnostic (фиолетовый жучара) и для Меги включить опцию Debug для EEPROM Module, то в логе будут подробно расписаны все операции с EEPROM и время их выполнения. Об этом как раз я готовлю сейчас следующий материал в FAQ. Надо научить и остальных пользоваться возможностями отладки.
Миниатюры:
Нажмите на изображение для увеличения
Название: ScreenShot08.gif
Просмотров: 72
Размер:	66.4 Кб
ID:	31572  

Последний раз редактировалось Halex07; 10.02.2012 в 08:49. Причина: добавлен посскриптум
Halex07 вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Протеус 7.7 нет отладки vitecd Proteus 3 13.03.2011 13:16
Запуск отладки slv61 Proteus 20 03.01.2011 18:24
CVAVR и Proteus 7.4 проблема отладки Petr_i Микроконтроллеры, АЦП, память и т.д 7 24.03.2009 16:07
Ускорить время в Proteus Vilovski Микроконтроллеры, АЦП, память и т.д 4 23.04.2008 14:39
Proteus и время. zelanez Микроконтроллеры, АЦП, память и т.д 12 21.06.2006 19:16


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


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