23.04.2020, 22:07
|
|
Гражданин KAZUS.RU
Регистрация: 26.12.2005
Сообщений: 596
Сказал спасибо: 24
Сказали Спасибо 68 раз(а) в 45 сообщении(ях)
|
Proteus сам переходит в PAUSE
Коротко. Proteus в процесе симуляции сам переходит в PAUSE, когда значение напряжения на входе ADC достигает определенного значения.
А теперь по порядку. В старом проекте нужно было добавить кое-что и удалить то, что не используется. Симуляция работала нормально. Потом решил "прикрутить" АЦП AVR только для тестирования программы (в железе стоит AT7705). Все работало. Начал подчищать программу. И вот тут столкнулся с проблемой. При определенном значении АЦП Proteus переходит в Software Breakpoint (почему-то программній останов) вот в этом месте
*p_vym_s1 = adc_value; - в обработчике прерываний
Дальше программа работает только после нажатия клавиши F12. Через 5 msec снова останов и т.д. Измерения проводятся нормально, но вот эти остановы?
Такая ситуация возникает если закомментировать, например:
flag_timer = 1; - в обработчике прерываний таймера 0 (вообще не используется, хотел удалить, но не могу)
или
cmd_I2C = message_buf[0]; - в MAIN
Причем, глючить начинает при:
U › 2,5 V (50%) - если в "adc.h" описание - volatile uint adc_value;
U ‹ 3,75 V (75%) - если в "adc.h" описание - uint adc_value;
Из проекта удалил все, что не влияет на ситуацию.
Прилагаю проект в IAR 6.80 и симуляция в Proteus.
Может еще при каких-то условиях возникает эта ситуация. Но я больше не тестировал.
Последний раз редактировалось pifa; 24.04.2020 в 21:27.
|
|
|
|
25.04.2020, 03:15
|
|
Временная регистрация
Регистрация: 16.02.2019
Адрес: Барановичи
Сообщений: 81
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
|
Re: Proteus сам переходит в PAUSE
Сообщение от pifa
|
Коротко. Proteus в процесе симуляции сам переходит в PAUSE, когда значение напряжения на входе ADC достигает определенного значения.
А теперь по порядку...
|
а попробуйте в той точке останова, в окне "CPU Source Code" на самом коде, в окне - нажать правой кнопкой мыши - и там нажать: "снять все точки останова"...
|
|
|
|
25.04.2020, 14:02
|
|
Гражданин KAZUS.RU
Регистрация: 26.12.2005
Сообщений: 596
Сказал спасибо: 24
Сказали Спасибо 68 раз(а) в 45 сообщении(ях)
|
Re: Proteus сам переходит в PAUSE
Сообщение от pic121618
|
а попробуйте в той точке останова, в окне "CPU Source Code" на самом коде, в окне - нажать правой кнопкой мыши - и там нажать: "снять все точки останова"...
|
Ну это вещи элементарные. Это первое, что я сделал - и "Disable All Breakpoints" и "Clear All Breakpoints" Но это не аппаратный останов, а программный. При аппаратном останове будет Breakpoint Reached, а у меня Software Breakpoint.
К тому же я выложил проект в Proteus'е. Так что любой может попробовать это сделать.
Последний раз редактировалось pifa; 25.04.2020 в 14:14.
|
|
|
|
25.04.2020, 15:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 14.11.2008
Адрес: Литва
Сообщений: 1,920
Сказал спасибо: 544
Сказали Спасибо 1,836 раз(а) в 828 сообщении(ях)
|
Re: Proteus сам переходит в PAUSE
Сообщение от pifa
|
К тому же я выложил проект в Proteus'е. Так что любой может попробовать это сделать.
|
Не может. В версии 8.6 не открывается, так как создан в более поздней версии!
|
|
|
|
25.04.2020, 15:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,812
Сказал спасибо: 126
Сказали Спасибо 605 раз(а) в 422 сообщении(ях)
|
Re: Proteus сам переходит в PAUSE
Попробуйте ulong *p_vym_s1; объявить как volatile.
|
|
|
|
25.04.2020, 15:52
|
|
Временная регистрация
Регистрация: 16.02.2019
Адрес: Барановичи
Сообщений: 81
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
|
Re: Proteus сам переходит в PAUSE
Сообщение от pifa
|
Ну это вещи элементарные. Это первое, что я сделал - и "Disable All Breakpoints" и "Clear All Breakpoints" Но это не аппаратный останов, а программный. При аппаратном останове будет Breakpoint Reached, а у меня Software Breakpoint.
К тому же я выложил проект в Proteus'е. Так что любой может попробовать это сделать.
|
Интересный проект в протеусе, резет висит в жопе, все ноги в прострации - не думаете что по одной из них прерывание может сработать - которые Вы успешно забыли выключить ?
|
|
|
|
25.04.2020, 16:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Proteus сам переходит в PAUSE
Сообщение от pic121618
|
не думаете что по одной из них прерывание может сработать - которые Вы успешно забыли выключить ?
|
у каждого источника прерывания свой обработчик..
Может из-за этого останов?
|
|
|
|
25.04.2020, 16:44
|
|
Временная регистрация
Регистрация: 16.02.2019
Адрес: Барановичи
Сообщений: 81
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
|
Re: Proteus сам переходит в PAUSE
Сообщение от Ara41
|
у каждого источника прерывания свой обработчик..
Может из-за этого останов?
|
Я Атмелы не знаю, я пиколюбитель, поэтому Вам решать - где Вы там накосячили, я просто предположил...
|
|
|
|
25.04.2020, 16:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Proteus сам переходит в PAUSE
Сообщение от pic121618
|
Я Атмелы не знаю, я пиколюбитель, поэтому Вам решать - где Вы там накосячили, я просто предположил...
|
я там не косячил, это вообще не мой код.
|
|
|
|
25.04.2020, 18:01
|
|
Гражданин KAZUS.RU
Регистрация: 26.12.2005
Сообщений: 596
Сказал спасибо: 24
Сказали Спасибо 68 раз(а) в 45 сообщении(ях)
|
Re: Proteus сам переходит в PAUSE
Сообщение от pic121618
|
Интересный проект в протеусе, резет висит в жопе, все ноги в прострации - не думаете что по одной из них прерывание может сработать - которые Вы успешно забыли выключить ?
|
Не может сработать. Это не реальная плата, а Proteus и здесь наводок быть не может
По умолчанию прерывания выключены и я включаю только то, что мне нужно.
Последний раз редактировалось pifa; 25.04.2020 в 18:12.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:59.
|
|