Proteus: вопросы и ответы

Обсуждаем цифровые устройства...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Можно ли верить Proteus'у ?

Сообщение ARV »

можно сделать все, и то, что сделан ATOMIC_BLOCK это только доказывает :)))

попробуйте элегантно решить следующую задачу: написать функцию, которая возвращает значение volatile long переменной :) с ATOMIC_BLOCK это решается вот так:

Код: Выделить всё

volatile long variable;

long atomic_value(void){
   ATOMIC_BLOCK(ATOMIC_RESTORESTATE){
      return variable;
   }
}
будет ли так же красиво с cli-sti и предварительным чтением SREG?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ellissar
Встал на лапы
Сообщения: 135
Зарегистрирован: Чт май 09, 2013 10:50:04

Re: Можно ли верить Proteus'у ?

Сообщение Ellissar »

ARV писал(а):будет ли так же красиво с cli-sti и предварительным чтением SREG?

наверное нет)

вобщем решил сделать как Вы советовали. С использованием ATOMIC_BLOCK(ATOMIC_RESTORESTATE) :)
BorisSPB
Встал на лапы
Сообщения: 145
Зарегистрирован: Ср фев 01, 2012 10:55:53

Re: Proteus: вопросы и ответы

Сообщение BorisSPB »

Объясните пожалуйста как в этом случае работает ATOMIC_BLOCK(ATOMIC_RESTORESTATE)?

Код: Выделить всё

   ATOMIC_BLOCK(ATOMIC_RESTORESTATE){
      return variable;
   }

После выполнения return variable; условия for не будут выполнены.

Разобрался...
Все дело в атрибуте __cleanup__(__iRestore).
prw07
Мучитель микросхем
Сообщения: 403
Зарегистрирован: Ср янв 26, 2011 17:00:30

Re: Proteus: вопросы и ответы

Сообщение prw07 »

МК работает от внутреннего генератора 4МГц с предварительным делителем на 16 = 250кГц. Ставлю в Протеусе для симуляции внешний генератор на 250кГц. Прерывание срабатывает через 16 секунд вместо 1с. Причем таже программа в AVR Studio с установкой 250кГц работает корректно. Что я упустил в Протеусе?
Архив с проектом:
1.ZIP
(50.87 КБ) 246 скачиваний

1.png
(25.97 КБ) 1228 скачиваний
Изображение
Rtmip
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Re: Proteus: вопросы и ответы

Сообщение Rtmip »

Судя по картинке стоит делитель частоты на 8.
Снимите его или задайте частоту в 8 раз выше :)
Аватара пользователя
Halex
Грызет канифоль
Сообщения: 281
Зарегистрирован: Пт ноя 15, 2013 20:58:23

Re: Proteus: вопросы и ответы

Сообщение Halex »

prw07 писал(а):МК работает от внутреннего генератора 4МГц
Тинька 13 физически этого не может (читай раздел Calibrated Internal RC Oscillator даташита на Tiny13 вЫнимательно - только 9.6 и 4.8 ).
prw07 писал(а):с предварительным делителем на 16
А вот в это верю, и в листинге Вашей программы установки регистра CLKPR прописаны именно для делителя на 16.
prw07 писал(а): Ставлю в Протеусе для симуляции внешний генератор на 250кГц.
Т.е. нахально задаёте тактовую частоту микроконтроллера 250кГц, а затем с помощью установки регистра CLKPR=0b00000100 ещё и делите её на 16. Итого получаем тактовую 15.625кГц. Ну, и что Вам не нравится??? Как сказал известный сатирик - "Может в консерватории что-нибудь подправить?"
Аватара пользователя
imon220
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб июл 27, 2013 03:46:14
Откуда: Р Крым

Re: Proteus: вопросы и ответы

Сообщение imon220 »

Здравствуйте. Скажите а есть модель у кого нибудь под китайский дисплей ssd1289
Rtmip
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Re: Proteus: вопросы и ответы

Сообщение Rtmip »

Аватара пользователя
imon220
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб июл 27, 2013 03:46:14
Откуда: Р Крым

Re: Proteus: вопросы и ответы

Сообщение imon220 »

Я пробовал но мне proteus выкидывает ошибку. У меня 8.1версия. Может она просто не поддерживает?
Rtmip
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Re: Proteus: вопросы и ответы

Сообщение Rtmip »

Возможно. В седьмом работает.
Файлы модели по папкам разложили правильно? В "LIBRARY" & "Models"?
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Proteus: вопросы и ответы

Сообщение AVK »

Такая проблема, нельзя поставить breakpoint ниже определенной строки в исходнике.
Почему то кончается адресация и ниже уже все.
Как так?
Screenshot_2.jpg
(63.05 КБ) 535 скачиваний
alex1126
Вымогатель припоя
Сообщения: 567
Зарегистрирован: Ср дек 19, 2012 12:16:22

Re: Proteus: вопросы и ответы

Сообщение alex1126 »

Может эта функция нигде не вызывается и поэтому ее компилятор упростил?
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Proteus: вопросы и ответы

Сообщение AVK »

alex1126 писал(а):Может эта функция нигде не вызывается и поэтому ее компилятор упростил?

Нет, там дальше до самого конца исходника нельзя ставить остановы.
Аватара пользователя
Halex
Грызет канифоль
Сообщения: 281
Зарегистрирован: Пт ноя 15, 2013 20:58:23

Re: Proteus: вопросы и ответы

Сообщение Halex »

AVK писал(а):Такая проблема, нельзя поставить breakpoint ниже определенной строки в исходнике.
На то, что не пронумеровано не поставите, и проблема здесь не в Протеусе, а в компиляторе. Так что подсказали Вам правильно. Можно попробовать на время отладки вырубить (или понизить уровень) оптимизацию кода в компиляторе, или сделать одну из переменных, которая используется в функции глобальной и volatile.
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Proteus: вопросы и ответы

Сообщение AVK »

Поразительно, раскоментил одну строчку (вызов совершенно левой функции) на работу никак не влияющая и все заработало.
Аватара пользователя
Halex
Грызет канифоль
Сообщения: 281
Зарегистрирован: Пт ноя 15, 2013 20:58:23

Re: Proteus: вопросы и ответы

Сообщение Halex »

AVK писал(а):... раскоментил одну строчку ... и все заработало.
Ну, так "дело было не в бобине" (ИМХО - Протеусе), компилятор "гадил". Либо неявная ошибка в программе, которую он неадекватно обработал. И с таким сталкивался.
const1105
Вымогатель припоя
Сообщения: 546
Зарегистрирован: Сб мар 19, 2011 15:19:47
Откуда: Владивосток

Re: Proteus: вопросы и ответы

Сообщение const1105 »

Не надо с больной головы на здоровую.
Если строки не пронумерованы, то их нет в исполняемой программе.
То есть мы туда не попадаем в любом случае.
И это в любом компилере.
prw07
Мучитель микросхем
Сообщения: 403
Зарегистрирован: Ср янв 26, 2011 17:00:30

Re: Proteus: вопросы и ответы

Сообщение prw07 »

Может не в тему но все же:
не однократно замечал, что при отладке в протеусе и параллельном редактировании кода в кодевижен, протеус перестает воспринимать некоторые строки в коде, хотя их отображает. Помогает "ресет всех окон" в отладке.
Может это только у меня, но вот так вот было не раз.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Proteus: вопросы и ответы

Сообщение Engineer_Keen »

Такая фигня иногда происходит и с 4й студией. HEX исполняется последний, а код показывается до последней правки. Помогает принудительное "сохранить все" в студии. При этом иногда жутко бесит поведение точек останова в протеусе после правки кода в студии. То они встают на старое место при каждом запуске, то исчезают вовсе. Галка исправлять точки при запуске не помогает :(
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Аватара пользователя
Сем30
Открыл глаза
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Re: Proteus: вопросы и ответы

Сообщение Сем30 »

Народ! Возникла проблема, мне надо в протеусе микруху DM74LS164N для управления индикаторами но там нет такой и аналог не могу найти. Плата с этими микрухами и индикаторами стоит в станке поэтому другие не могу использовать. Мне надо между этой платой и контроллером станка вставить свой контроллер для вывода доп информации. Подскажите как быть? Где взять библиотеку где она есть или какой у неё есть аналог, немогу найти аналог такой чтоб он был в протеусе.
Ответить

Вернуться в «Цифровая техника»