Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
14.3.2011, 19:16
Сообщение
#101
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
|
14.3.2011, 19:45
Сообщение
#102
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23814 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Может его над горшком подержать? Пс-пс-пс, маленький.... Не удержу... Он с меня ростом... Да ладно, обьяснил уже. "Сынок, ты уже взрослый и тебе пора знать, как ведут себя операционные усилители...." Кстати, понял за полчаса примерно. позже проверю, как понял и практику устрою. |
|
|
|
14.3.2011, 19:51
Сообщение
#103
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 7045 Регистрация: 22.11.2009 Из: Уфа Пользователь №: 18 |
Понять, как работают ОУ- это полжизни не хватит... Есть на элхе такие красноречивые живые примеры.
|
|
|
|
14.3.2011, 20:24
Сообщение
#104
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23814 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Понять, как работают ОУ- это полжизни не хватит... Есть на элхе такие красноречивые живые примеры. Ну ладно. ладно...есть много слоев понимания. Самые примитивные представления - что такое нуллор, норатор, симметризор, и пр - иметь все же нужно |
|
|
|
| Гость_AlexKlm_* |
14.3.2011, 21:20
Сообщение
#105
|
|
Гости |
Заоблачные высоты полёта мыслей.
|
|
|
|
14.3.2011, 22:04
Сообщение
#106
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
|
14.3.2011, 23:41
Сообщение
#107
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
|
15.3.2011, 0:25
Сообщение
#108
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23814 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Напоминает изготовление первого каменного рубила. Тоже еще мало кто чего о свойствах камня знал, а математики еще не было придумано. Потому шли на ощупь, опытным путем. |
|
|
|
15.3.2011, 7:44
Сообщение
#109
|
|
![]() тот самый Группа: Мод Сообщений: 13647 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Ы без границ Если дать челу линейную оптопару, он ее разломает и сделает гуаномашину.
|
|
|
|
| Гость_Максим Зиновьев_* |
15.3.2011, 14:02
Сообщение
#110
|
|
Гости |
|
|
|
|
15.3.2011, 15:21
Сообщение
#111
|
|
![]() тот самый Группа: Мод Сообщений: 13647 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Чтобы кто ни говорил, но фраза "надо надёжно защититься от сбоев в программе" просто убивает нах. |
|
|
|
15.3.2011, 17:54
Сообщение
#112
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 7045 Регистрация: 22.11.2009 Из: Уфа Пользователь №: 18 |
|
|
|
|
| Гость_MrYuran_* |
15.3.2011, 18:06
Сообщение
#113
|
|
Гости |
Чтобы кто ни говорил, но фраза "надо надёжно защититься от сбоев в программе" просто убивает нах. Возможно будете смеяться, но у меня в МСП-шке какой-то вирус живёт. Второй месяц выловить не могу. Вот такая безобидная конструкция Код GetRealTime(&RealTime); if(Timers.ADC_Request < RealTime) // Время перезапускать цикл АЦП { StartADC(); Timers.ADC_Request = RealTime + ADC_CYCLE_PERIOD; TOGGLE_KT4; } Вдруг "залипает" на неопределённое время. Хотя такая же по соседству исправно и размеренно запускает нужную процедуру. То вдруг переменная по определённому адресу внезапно портиться начинает. Жуть, в общем. Всё перерыл, весь текст в траншеях и отвалах... Нигде никого... Самое смешное, что приближается срок сдачи всего этого безобразия, в очередной раз, спустя год Чувствуется, что когда я её найду, эту собаку, как бы живот не надорвать от смеха... |
|
|
|
15.3.2011, 19:05
Сообщение
#114
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
[quote name='MrYuran' date='15.3.2011, 19:06' post='29649']
Код GetRealTime(&RealTime); if(Timers.ADC_Request < RealTime) // Время перезапускать цикл АЦП { StartADC(); Timers.ADC_Request = RealTime + ADC_CYCLE_PERIOD; TOGGLE_KT4; } А мне интересно, как объявлены: 1. структура или объединение Timers; 2. переменная RealTime; 3. макрос ADC_CYCLE_PERIOD; Поскольку тут есть два варианта: 1. Из-за неправильного автоматического приведения типов операция RealTime + ADC_CYCLE_PERIOD приводит к тому, что в Timers.ADC_Request получается неизвестно чего. И в последующем, условие Timers.ADC_Request < RealTime не выполняется длительное время. 2. В одну из перечисленных в пп. 1 и 2 переменных попадает какая-то гадость из динамических данных. |
|
|
|
15.3.2011, 20:00
Сообщение
#115
|
|
![]() тот самый Группа: Мод Сообщений: 13647 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Чувствуется, что когда я её найду, эту собаку, как бы живот не надорвать от смеха... Кто-нить может там отловить условным брекпоинтом? Нету такого дебаггера? Плаваю в мсп, не знаю, что почем. НЕ, макабуки читал, ессно... 2. В одну из перечисленных в пп. 1 и 2 переменных попадает какая-то гадость из динамических данных. Угу. Вопрос есть интересный. Как можно оценить запас свободного времени МК, для ясности это PIC18f2431? Ымбед такой: в прерываниях идут только самые критические вещи. Просчет траектории разгона, интерфейсы и статистика - в фоновой карусели. Не хотелось бы это в прерывания сажать, потому что времянка не сопоставимая, и вообще, нехрен прогибаться под архитектуру. Как?? |
|
|
|
15.3.2011, 20:30
Сообщение
#116
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Вопрос есть интересный. Как можно оценить запас свободного времени МК, для ясности это PIC18f2431? Ымбед такой: в прерываниях идут только самые критические вещи. Просчет траектории разгона, интерфейсы и статистика - в фоновой карусели. Не хотелось бы это в прерывания сажать, потому что времянка не сопоставимая, и вообще, нехрен прогибаться под архитектуру. Как?? Хорошо. А свободное время оценивается в симуляторе. С помощью StopWatch. Хотите подробностей - их есть у меня. Только есть НО. Де факто, базовым интерфейсом привода является MODBUS/RTU... |
|
|
|
15.3.2011, 20:40
Сообщение
#117
|
|
![]() тот самый Группа: Мод Сообщений: 13647 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Хорошо. А свободное время оценивается в симуляторе. С помощью StopWatch. Хотите подробностей - их есть у меня. Только есть НО. Де факто, базовым интерфейсом привода является MODBUS/RTU... Это поверхностный взгляд. Нужный показатель - это соотношение числа циклов, проведенных в нужных вычислениях, включая и вычисление показателя Вот вам "отжигатели", завидуйте. Завидуем. |
|
|
|
15.3.2011, 20:53
Сообщение
#118
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Это поверхностный взгляд. Нужный показатель - это соотношение числа циклов, проведенных в нужных вычислениях, включая и вычисление показателя Ничего не понял... Так и почему взгляд поверхностный? И что называется низкоприоритетным потоком? Программирование должно быть событийным. В симуляторе можно и оттрассировать выполнение программулины. |
|
|
|
16.3.2011, 7:50
Сообщение
#119
|
|
![]() тот самый Группа: Мод Сообщений: 13647 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Придумал кошерное название - "Ымбед радива" сообщает. +1 Нравится В симуляторе можно и оттрассировать выполнение программулины. Там получается до 6-ти асинхронных процессов, которые при небольших накладных расходах впихуемы в простейшие программные конструкции, имитационное моделирование худшего случая очень затруднительно, поэтому лучше глянуть в реале. Пока что кроме подсчета пустых циклов в основной программе и выполнения всего остального через вектора прерываний , более ничего не просматривается. :( |
|
|
|
| Гость_MrYuran_* |
16.3.2011, 9:55
Сообщение
#120
|
|
Гости |
2. переменная RealTime; 3. макрос ADC_CYCLE_PERIOD; Поскольку тут есть два варианта: Тоже стало интересно, глянул time_ctr RealTime; А вот тут самое интересное: time_ctr вопреки моим ожиданиям оказался unsigned int, а не unsigned long. Поправил. Пока работает Хотя есть опасение, что просто передвинул проблему на 71580,6 минут... (RealTime - время от включения в мс) |
|
|
|
![]() ![]() |
| Текстовая версия | Сейчас: 21.3.2026, 7:03 |