25 / 23 / 3
Регистрация: 10.07.2014
Сообщений: 587
|
|
1 | |
Нужно измерит интервал времени в секундах между двумя прерываниями22.05.2017, 18:23. Показов 1094. Ответов 13
Метки нет Все метки)
(
0
|
|
22.05.2017, 18:23 | |
Ответы с готовыми решениями:
13
Как измерить разницу в секундах между двумя значениями времени? Написать функцию для вычисления интервала времени в секундах между двумя моментами, находящимися внутри двенадцатичасового цикла |
1161 / 640 / 108
Регистрация: 15.05.2012
Сообщений: 3,918
|
|||||||||||
22.05.2017, 20:47 | 2 | ||||||||||
Пришло первое прерывание - запустили таймер.
1
|
480 / 327 / 32
Регистрация: 15.08.2011
Сообщений: 1,042
|
|
22.05.2017, 20:53 | 3 |
Если это все что вы знаете, то начинать надо с нуля. А именно: выбрать язык (си, ассемблер), среду программирования (аврстудио например), модель процессора, тип прерывания, подробности как надо отображать измеренное значение не мешало бы знать тоже. После этого можно думать как решить поставленную задачу.
1
|
1161 / 640 / 108
Регистрация: 15.05.2012
Сообщений: 3,918
|
|
22.05.2017, 20:59 | 4 |
1
|
480 / 327 / 32
Регистрация: 15.08.2011
Сообщений: 1,042
|
|
22.05.2017, 21:00 | 5 |
Но интервал длительностью секунды так не померишь. Счетчик 8-битный, предделитель максимум 1024, кварц - мегагерцы.
1
|
1161 / 640 / 108
Регистрация: 15.05.2012
Сообщений: 3,918
|
|
22.05.2017, 21:04 | 6 |
Отчего же? Тактировать можно внешним геной.
Добавлено через 1 минуту Опять же - никто не мешает ввести n++ и помещать его в память, а не TCNT0. Ну вы поняли, о чём я.
1
|
480 / 327 / 32
Регистрация: 15.08.2011
Сообщений: 1,042
|
|
22.05.2017, 21:12 | 7 |
Ну я в принципе представляю как посчитать секунду. Но дело не в этом. Задания то нормально не сформулировано. Мы сейчас напишем одно, а надо другое.
1
|
1161 / 640 / 108
Регистрация: 15.05.2012
Сообщений: 3,918
|
|
22.05.2017, 21:19 | 8 |
ТС не оговаривает ни язык, ни тип прерывания, ни модель AVR. Стало быть всё это на усмотрение разработчика. Не вижу никаких проблем.
1
|
480 / 327 / 32
Регистрация: 15.08.2011
Сообщений: 1,042
|
|
22.05.2017, 21:27 | 9 |
А я сомневаюсь что такие широкие рамки.
Недавно отвечал на вопрос по сиплюсплюс, в конце оказалось что у тс кодевижн. И такое здесь постоянно. Люди не могут нормально сформулировать что им нужно. А вхолостую делать работу не хочется.
1
|
1161 / 640 / 108
Регистрация: 15.05.2012
Сообщений: 3,918
|
|
23.05.2017, 05:05 | 10 |
И сами себя хотите загнать в узкие.
Вы сами впрягаетесь. Всё гораздо проще. У студента есть задание. Выпрыгнуть из него он не может. Написано - AVR, значит AVR. Написано - между прерываниями - значит между прерываниями. Делай как желаешь, хоть так, хоть эдак.
1
|
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
23.05.2017, 08:50 | 11 |
у многих AVR есть тактование от внутреннего RC-генератора 128kHz. При делении на 1024 таймер досчитает до 125ти ). Так что это таки возможно...
ТС, общественность жаждет подробностей - что за чип, какая частота? Какие прерывания вас интересуют? Язык разработки и ваши наработки.
1
|
25 / 23 / 3
Регистрация: 10.07.2014
Сообщений: 587
|
|
23.05.2017, 09:16 [ТС] | 12 |
pyzhman,
Я не полностью сформулировал задание (так как я должен сам выбирать способ решения).Есть компрессор холодильника. Компрессор работает до определенной температуры.А потом срабатывает реле. Компрессор отключается. Температура повышается.Реле срабатывает.Компрессор включаться.Цикл повторяется заново. Время работы компрессора-Tp.Время стоянки - Tн. Коэффициент рабочего времени:b=Tр/(Tр+Tн).b<0,5. При утечки фреона или другой поломки.b>0,5.Что говорит нам о поломке. Тоесть мне нужно написать программу на СИ(желательно но можно и на асемблере) Нужно вычислить(в секундах ) Tp , Tн, b и сигнализировать об ошибке b>0,5 Я так понял мне нужен кварц 32768Гц И предделитель регистр OCR Регистр захвата ICR и хранение значения TCNT Внешнее прерывание GIMSK от реле. Как сам понял программка простенькая.Но я только начал изучать AVR.Поэтому для меня это очень сложно.
0
|
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
23.05.2017, 11:33 | 13 |
Не согласен с решением. Для холодильных установок определяющим фактором является разница температур хладагента между входом и выходом компрессора, и/или испарителя. По ней и только по ней вы сможете определить - работает ли холодильник нормально. А так - при очень жаркой внешней температуре, ваш холодильник может молотить весь день, но работать при этом как надо.
Вдобавок, при нерабочем терморегуляторе холодильник может вообще не включаться... Это тоже поломка, так что пожалуй, самым важным будет температура внутри камер. В морозилке должно быть -18.
1
|
25 / 23 / 3
Регистрация: 10.07.2014
Сообщений: 587
|
|
23.05.2017, 13:21 [ТС] | 14 |
Это тоже учитывать надо.Согласен.
Здесь надо подумать.В книгах написано что очень частые пуски не желательны.Даже b должен быть меньше 0,24.Я же даю условие b<0,5
0
|
23.05.2017, 13:21 | |
Помогаю со студенческими работами здесь
14
Структура «время», определить функцию определяющую интервал между двумя значениями времени Выполнение через определённый интервал времени в секундах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |