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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 09.09.2014, 21:45  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: Задержка импульса

Так сейчас прерывание сработало и получил на выходе импульс. Сейчас разберусь немного с внешними прерываниями, самое интересное, что регистров для внешних прерываний нет в Отладчике, сейчас ставлю посвежей версию, может там оно есть
Реклама:
SAHA_T вне форума  
Непрочитано 09.09.2014, 23:39  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: Задержка импульса

Сегодня уже зависаю, слишком уж много информации потребил

Тут такой нюанс, а каким же образом мы вычислим задержку если мы с первого же импульса делаем подсчет счетчика и его же и сбрасываем, нужно делать 2 импульса что бы подсчитать полный оборот двигателя.

Сейчас пришла вот такая мысль, у нас в таймере есть 2 регистра 1А и 1Б в 1А у нас сравниваемое значение а вот в 1Б можно хранить данные счетчика после каждого оборота и складывать их с oborot = (TCNT1L|((int)TCNT1H‹‹8 )); что то в этом духе

oborot = (TCNT1L|((int)TCNT1H‹‹8 ));
OCR1BH=(char)(oborot››8 );
OCR1BL=(char)oborot;
TCNT1L=TCNT1H=0x00;
и уже при 2-м импульсе прибавлять oborot + OCR1B и вычислять реальную оборот маховика
что то я за сегодня уже устал, совсем голова не варит
Думаю завтра буду включаться.

Форумчане не молчите, ведь 2 головы хорошо а 10-ть и более, лучше, давайте плиз помогайте
Всем заранее спасибо
SAHA_T вне форума  
Непрочитано 10.09.2014, 05:30  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,543
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Задержка импульса

Сообщение от SAHA_T Посмотреть сообщение
Форумчане не молчите, ведь 2 головы хорошо а 10-ть и более, лучше, давайте плиз помогайте
Ну да, Крылов описал, как помогали слону картину рисовать и что из этого вышло.
Сообщение от SAHA_T Посмотреть сообщение
Сейчас пришла вот такая мысль, у нас в таймере есть 2 регистра 1А и 1Б в 1А у нас сравниваемое значение а вот в 1Б можно хранить данные счетчика после каждого оборота
Кто мешает хранить прошлый оборот в переменной?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 10.09.2014, 12:20  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: Задержка импульса

*Ну да, Крылов описал, как помогали слону картину рисовать и что из этого вышло.*

akegor, интересно, ваши Сообщений: 6,445, все были написаны именно таким образом ? ведь в данной теме, начиная с самой первой страницы вы ничего толком и не сказали. Нет написали про делители - спасибо. Не понимаю таких людей, которые все время умничают а ничего не делают. Я вижу вы умный человек, но толку с вас в данной теме, вы только пытаетесь опустить или подковырнуть. Что вам мешает помогать, ведь на форум люди обращаются не для того что бы их пинали, как многие это делают, а за помощью. А вот для того что бы показать свой ум и талант, люди создают сайт или страницы и там выкладывают свои проекты, мысли, разработки и т.д.
Не в обиду

чуть позже займусь программой
SAHA_T вне форума  
Непрочитано 10.09.2014, 12:36  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,543
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Задержка импульса

Сообщение от SAHA_T Посмотреть сообщение
Я вижу вы умный человек, но толку с вас в данной теме, вы только пытаетесь опустить или подковырнуть.
Постарайтесь не комплексовать. Если меня читать без комплексов, там найдется гораздо больше полезного, чем находит уязвленное комплексом самолюбие. Не без того, что не предлагаю жеваное проглатывать, предлагаю думать и анализировать. Окончательное решение за автором. Это закон.

ПС. SAHA_T, извините, сам комплекснул...
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.

Последний раз редактировалось akegor; 10.09.2014 в 13:45.
akegor вне форума  
Сказали "Спасибо" akegor
SAHA_T (10.09.2014)
Непрочитано 10.09.2014, 14:07  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: Задержка импульса

снова перечитывал и действительно может получиться, в одном прерывании (EXT_INT0) будут рассчитываться обороты и вычисляться задержка, а второе TIM1_COMPA просто будет сидеть и ждать, когда же значение таймера будет равно значению регистра.
И получается что при первом начальном цикле, прерывание по сравнению сработает первее и начальная задержка выполнится, а уже в дальнейшем значение регистра будет изменено(в зависимости от оборотов). Думаю должно сработать. Сейчас нужно сообразить какое количество значений будет в таблице, думаю делать шаг по 100 оборотов получится 105 значений.
SAHA_T вне форума  
Непрочитано 10.09.2014, 15:22  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Задержка импульса

Сообщение от SAHA_T Посмотреть сообщение
какое количество значений будет в таблице, думаю делать шаг по 100 оборотов
По 100 не годится: будет слишком большая ошибка установки УОЗ.
В самом первом посте Вы сказали, что датчик стоит на 40град. раньше ВМТ. То есть для искрообразования, например, точно в ВМТ, система после импульса датчика должна выполнить задержку на 40градусов. Для 600об/мин задержка получается 11111мкс (кстати, не 40%, а 40градусов от 360 градусов = 11.111%). Хорошо.
Далее, если шаг по оборотам 100, то такая же задержка 11111мкс будет использована и для 699об/мин. Но на таких оборотах эта задержка даст угол 46.5 градусов.
То есть на низких оборотах при увеличении скорости вращения, Ваш УОЗ будет уползать в более позднее зажигание на 6 с лишним градусов внутри каждого шага 100: в начале шага точно, в конце уехало, потом снова точно в начале следующего, потом уехало и т.д.
То есть надо шаг мельчить.

Потом, круглые числа 600об/мин, 700об/мин, 800об/мин ... хороши только для человека. Для микропроцессора десятичная система - хуже горькой редьки. Потом ещё и деление нужно. Вот это выражение
F=(1/N)*60*1000000 оборотов в минуту
которое содержит деление 32-битных чисел, ATtiny2313 будет вычислять очень долго, есть шанс ваще не успеть просчитать во время задержки, типа, посчитали, а ВМТ уже проехали.

Поэтому предлагаю плюнуть на частоту оборотов и пользовать только длительность оборотов. Считать длительность оборотов с шагом 256мкс.
Откройте Микрософт Офис Excel, в первой колонке пронумеруйте клетки сверху-вниз от n=1 до 400, в соседней колонке n*256, а в третьей колонке 60000000/(n*256). Получится таблица. Колонка 1 = Номер элемента, Колонка 2 - длительность оборота, Колонка 3 - частота вращения. Увидите, что для оборотов от 600 до 10000 нужно 368 строк. Сохраните таблицу в файл, это будет будущая заготовка для таблицы углов в программе для тиньки.
Вот, в таблице видно, шаг по оборотам непостоянный: на малых оборотах шаг всего 2об/мин, на высоких оборотах шаг вырастает до 400 об/мин. При таком распределении оборотов по таблице ошибка по установке УОЗ: на 600об/мин ошибка =0.1 градус, на 1000об/мин =0.2 градуса, на 3000об/мин = 0.5 градуса, на 6000об/мин = 1.0 градуса, и 1.5градуса на 9000на об/мин.

Так что можно обойтись таблицей в 370 элемента по 2 байта, всего 740 байтов флеши. Должно влезть.

PS. Надеюсь, Excel пользоваться умеете и не придётся набивать 400 строк вручную - всё делается автоматом.
Yurkin2014 вне форума  
Сказали "Спасибо" Yurkin2014
SAHA_T (11.09.2014)
Непрочитано 11.09.2014, 00:00  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Задержка импульса

Сообщение от SAHA_T Посмотреть сообщение
Следовательно что бы измерить оборот двигателя нужно ждать 2 импульса датчика
Зачем?
Если предыдущего импульса не было, значит текущий - первый (сбои хардовые или софтовые пока не рассматриваем, примем, что их нет )
Ну так и давайте импульс на максимальную задержку (минимальные обороты).
omercury вне форума  
Сказали "Спасибо" omercury
SAHA_T (11.09.2014)
Непрочитано 11.09.2014, 00:03  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Задержка импульса

Сообщение от val_ka Посмотреть сообщение
Таймеры работают с частотой Fosc/4
Сообщение от val_ka Посмотреть сообщение
Обычно таймер работает не с частотой кварца, а F/4.
Сообщение от val_ka Посмотреть сообщение
Т.к. счётчик работает с 2 Мгц, (кварц то на 8 )
val_ka, уймитесь, таймеры работают от кварца через предделитель (который можно и не включать) независимо от того PIC это или AVR, это ядро в младших PICах работает на F/4.
omercury вне форума  
Сказали "Спасибо" omercury
SAHA_T (11.09.2014)
Непрочитано 11.09.2014, 00:32  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Задержка импульса

Сообщение от SAHA_T Посмотреть сообщение
Так сейчас прерывание сработало и получил на выходе импульс. Сейчас разберусь немного с внешними прерываниями, самое интересное, что регистров для внешних прерываний нет в Отладчике, сейчас ставлю посвежей версию, может там оно есть
Как так?
Вот они все.
Миниатюры:
Нажмите на изображение для увеличения
Название: Image1.jpg
Просмотров: 25
Размер:	54.9 Кб
ID:	69427  
omercury вне форума  
Сказали "Спасибо" omercury
SAHA_T (11.09.2014)
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задержка или опережение импульса SAHA_T Микроконтроллеры, АЦП, память и т.д 85 19.08.2014 00:51
Измерение длительности импульса STM32 anton_1000 ARM 28 22.10.2013 10:51
Ограничитель длительности импульса Pajatel Микроконтроллеры, АЦП, память и т.д 161 05.04.2012 00:35
Как выделить срез импульса? vicselc Поиск схем. Делимся схемами 10 09.07.2007 01:27
LCD DEM 16261(4 bit mode) + AT89C51 ajborman Микроконтроллеры, АЦП, память и т.д 8 21.03.2007 15:26


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot