Специальные цены   новые товары
Закрытая тема
Страница 6 из 11 ПерваяПервая ... 4 5 6 7 8 ... ПоследняяПоследняя
Показано с 201 по 240 из 419

БАНо

Тема раздела Самодельная электроника, компьютерные программы в категории Общие вопросы; Сообщение от МаркАнтоний Я так понял что происходит переполнеие таймера, он обнуляется и в счётном регистре получается ерунда а не ...

  1. #201

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Цитата Сообщение от МаркАнтоний Посмотреть сообщение
    Я так понял что происходит переполнеие таймера, он обнуляется и в счётном регистре получается ерунда а не действительное значение длительности! Как с этим бороться я пока не разобрался! Может у кого нибудь есть мысли на этот счёт?
    Да легко! Следующее значение делителя таймера - 256, время переполнения 8 мс (не 2, как в моей схеме), так что точность пострадает в 4ре раза, но зато запас будет, думаю, в вашем случае точность не актуальна

    Еще одно - а по завершению импульса таймер останавливаете? А после записи в рабочую переменную счётчик таймера обнуляете? А то дальше считать будет В общем - проверьте на симуляторе эти два условия.

  2.  
  3. #202

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Цитата Сообщение от Catsw Посмотреть сообщение
    Еще одно - а по завершению импульса таймер останавливаете? А после записи в рабочую переменную счётчик таймера обнуляете? А то дальше считать будет В общем - проверьте на симуляторе эти два условия.

    И останавливаю и обнуляю, все как полагается! Спасибо за наводку! Буду разбираться.

  4. #203

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Цитата Сообщение от МаркАнтоний Посмотреть сообщение
    Спасибо за наводку! Буду разбираться.
    Да не за что.... Если 8мс переполнение, то в вашем случае 2мс = 256/8=32 "тика" таймера, 1мс = соответственно 16. Если чуть точнее, границы будут от 1,5мс (24тика) до 2,5мс (40 тиков) - т.е диапазон 16 тиков. Точность не ахти, но если точно подобрать границы импульса = должна сгодится

    Вариант 2 - при работе таймера проверять на переполнение и проводить необходимые действия - например остановить таймер, или декрементировать его.

  5. #204

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    Надо разрешить прерывание по переполнению и в обработчике прерывания устанавливать флаг переполнения. При считывании данных из таймера в переменную по флагу к результату таймера прибавлять 255 или не прибавлять, только надо переменную period(по моей программе) сделать 16-ти битной.

  6.  
  7. #205

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Цитата Сообщение от valera_o Посмотреть сообщение
    Надо разрешить прерывание по переполнению
    Цитата Сообщение от valera_o Посмотреть сообщение
    в переменную по флагу к результату таймера прибавлять 255
    Точно! Что то я ступил вчера....

  8. #206

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Что то я не соображу как это.
    Вот что у меня на данный момент, поправьте.
    Вложения

  9. #207

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    внес изменения в обработчик по переполнению и в разделе переменных ввёл переменную flag_ovf и переменные период и период1 сделал 16-ти битными. Добавил условия в обработчики прерываний по каналам управления.

  10.  
  11. #208

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Валерий, мысль понял, спасибо! Но у Вас нет обнуления этого флага, ведь стоит один раз произойти переполнеию и он постоянно будет приплюсовывать 255. Но всё равно спасибо за подсказку!

  12. #209

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    да, забыл. его надо после приплюсовки очищать.

  13. #210

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Часы изысканий привели к следующему: Переполнение таймера происходит всего лишь на 1-4 единицы. Я считаю что этим можно пренебречь и в прерывании при переполнении таймера можно записывать 255 в наши регистры, а число что в счётном регистре просто не учитывать. Это сделал.
    Но всё равно какаято ошибка есть. Когда стики на пульте не трогаю светодиоды живут своей жизнью. Почему не понятно, ведь когда в отладчике смотрю значения, они не меняются. Отладка в реальном времени с макетной платы.
    Вложения

  14. #211

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Цитата Сообщение от МаркАнтоний Посмотреть сообщение
    . Когда стики на пульте не трогаю светодиоды живут своей жизнью. Почему не понятно,
    У меня была проблема с уровнем сигнала с приёмыша, попробуйте запитать макетку от ТРЁХ вольт и посмотрите на поведение светодиодов!!!

  15. #212

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    "Своя жизнь" это как?

  16. #213

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    С питанием не прокатило.
    А своя жизнь это так: стик поворотников стоит в среднем положении, а светодиоды в это время моргают, причём моргаю как хотят, закономерности нет, сначала моргает один, потом может моргнуть второй а потом первый.
    Я в тупике! Если обхожу условие подмены во внешнем перывании, то работает, а добавляю его всё ломается.

  17. #214

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    Напомните "идеологию" управления. что и чем должно управлять? Почему два канала, нельзя ли одним каналом поворота? Судя по проге управление только от "период", зачем второй канал?
    И еще, ext0 и ext1 это метки или переменные? В одном месте они вписаны как метки, в другом это похоже на обнуление переменных.
    Порог 130 надо уменьшить, в этом крайнем положении будет вываливаться из индикации поворота.
    Последний раз редактировалось valera_o; 18.01.2011 в 22:43.

  18. #215

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Цитата Сообщение от МаркАнтоний Посмотреть сообщение
    С питанием не прокатило.
    Жаль, такая идея была

    Цитата Сообщение от МаркАнтоний Посмотреть сообщение
    причём моргаю как хотят,
    И кто у Вас там моргает то непонятно???

    Хинт: У вас по второму прерыванию присваивается Период1, а не просто Период, поэтому канал второй НЕ обрабатывается.

  19. #216

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Рассказываю задумку. Делаю свет для авто. На авто у нас какой свет бывает? Габариты, фары, поворотники. Так вот, один канал у нас управляет поворотниками, а другой-крутилка включает габариты и свет.
    Первая проблемма: при максимальном отклонении стика "поворотники" вправо (длительность импульса максимум) правый поворотник перестаёт моргать. Эту проблемму я поборол, но вылезла другая, а именно: Когда стик "поворотники" не трогаем, но в это время выкручиваем крутилку "свет" на максимум начинают моргать поворотники, причём и левый и правый, как хотят! Это то, что натворил Я!
    А с последними изменениями в программе вообще ерунда творится, светодиоды поворотников моргаю постоянно, хотя стики в средних положениях.
    Пока задействован только регистр Period потому что не получается наладить нормально прерывания, Period1 будет включать габариты и фары, но видимо до этого ещё очень далеко!

    Я не пойму единственного, почему у меня одно прерывание может влиять на другое!?

  20. #217

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    57
    Сообщений
    11,570
    При малом разрешении Вы не добьетесь нормальной работы света относительно базовых устройств (сервы поворота и регулятора хода). Попробуйте обойтись без таймера и будет Вам щастье.

  21. #218

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Цитата Сообщение от V_Alex Посмотреть сообщение
    При малом разрешении Вы не добьетесь нормальной работы света относительно базовых устройств (сервы поворота и регулятора хода). Попробуйте обойтись без таймера и будет Вам щастье.
    Не понял вообще!

  22. #219

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    57
    Сообщений
    11,570
    Чиво непонятно? Вот готовый девайс : http://rcmag.ru/manuf/62#product/9076 .
    Без таймера . Немного подумаете и у Вас получится.

  23. #220

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Цитата Сообщение от V_Alex Посмотреть сообщение
    Чиво непонятно? Вот готовый девайс : http://rcmag.ru/manuf/62#product/9076 .
    Без таймера . Немного подумаете и у Вас получится.
    А с чего Вы взяли что в данном девайсе не используется таймер? Вы помоему не особо понимаете о чём идёт речь! Как же по Вашему там измеряется длительность канального импульса?

  24. #221

    Регистрация
    25.03.2009
    Адрес
    Vilnius, lithuania
    Возраст
    42
    Сообщений
    1,881
    Не знаю, как именно в том устройстве, но я делал подобные девайсы и без таймера, либо просто на прерываниях по нему.

  25. #222

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    Убрал всё не относящееся к сигналам поворотов. В симе работает.
    Уточните выходы на светодиоды.

  26. #223

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    57
    Сообщений
    11,570
    Цитата Сообщение от МаркАнтоний Посмотреть сообщение
    А с чего Вы взяли что в данном девайсе не используется таймер? Вы помоему не особо понимаете о чём идёт речь! Как же по Вашему там измеряется длительность канального импульса?
    Не, я точно понимаю, о чем идет речь . Там моя прошивка . Камешек - тини 12 с внешним резонатором. Обработка сигнала - в основном цикле.
    Если у Вас используется тини 24 или 2313, можете перейти на 16-разрядный таймер 1. Это тоже вариант избавиться от лишних глюков по прерываниям и поднять точность обработки.
    P.S. Очень рекомендую книжку : Джон Мортон, "Микроконтроллеры AVR. Вводный курс." Там есть все, что нужно.

  27. #224

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Цитата Сообщение от valera_o Посмотреть сообщение
    Убрал всё не относящееся к сигналам поворотов. В симе работает.
    Уточните выходы на светодиоды.
    Валерий, в том то и есть вся беда! В симе и у меня работает, а в железе глючит! К вечеру выложу видео, чтоб наглядно объяснить в чём проблемма. Спасибо за участие.

  28. #225

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    Антон, с моей сегодняшней версией работает или тоже глючит?

  29. #226

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    57
    Сообщений
    11,570
    Ребяты, я не злобствую. Просто на этих граблях (когда в симе работает, а на плате радуется своей богатой внутренней жизни), я как начинающий AVR-программер, натопталсо по самое небалуйся. Поэтому могу лишь присоединиться к рекомендации Rula - либо обработка в основном цикле, либо только на прeрываниях по Timer1.

  30. #227

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    Уговорили, пусть будет на 16-битном таймере.
    Теперь границы представлены более наглядными цифрами.

  31. #228

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Валерий, парочка корректировок:

    1е не совсем понятен делитель на 8мь в таймере - может убрать? А то 65 сек переполнения - более, чем с головой Но эт не критично.

    2е Не разрешены в начале оба прерывания, не исправлена Период1, кстати, прерывание ТОЛЬКО по возрастанию напруги - работать НЕ будет, так как не будет генерироватся прерывание при спаде импульса и корректно считать длинну ППМа!!!

    ПС настроил оба прерывания, подкорректировал флаги, таймер оставил в вашем варианте - да, нагляден
    В общем - в симуляторе всё работает, проверить в железе надо.
    Вложения
    Последний раз редактировалось Catsw; 19.01.2011 в 18:12.

  32. #229

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    1е, делитель на 8 даст один тик таймера в 1мкс, т.е. переполнение таймера будет через 63535мкс
    2е, ext_int на старте включает прерывание по нарастающему фронту для external_0, для второго прерывания можно потом включить. Странно, почему не будет прерывания по нарастающему фронту? Согласен, что можно поставить срабатывание по любому изменению на ноге, а определять фронт это был или спад импульса уже по состоянию ноги, в обработчике.
    Не путайте "Внешние прерывания" и "Прерывания по активности на выводе".
    "The External Interrupts are triggered by the INT0 pin, INT1 pin or any of the PCINT7..0
    pins. Ноги Int0 и Int1 не входят в маску прерывания по активности на ногах. Так что конфигурация внешних прерываний будет срабатывать еще и по активности на ногах PB0 и PB1. Добавьте обработчик для этого прерывания и задайте входные импульсы на В0 или В1, увидите, что прога будет вываливаться в этот обработчик, а поскольку такого обработчика нет в Вашей проге, то она будет вылетать неизвестно куда.
    Прерывание по активности будет только при изменении лог. состояния на ноге, выбрать спадающий или нарастающий фронт, или низкий уровень для него невозможно. Насколько я понял перевод мануала.
    Последний раз редактировалось valera_o; 19.01.2011 в 19:04.

  33. #230

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Цитата Сообщение от valera_o Посмотреть сообщение
    2е, странно, ext_int по включению включает прерывание по нарастающему фронту для external_0, для второго прерывания можно потом включить. Почему не будет прерывания по нарастающему фронту? Даже странно, что ж еще надо будет камню, чтобы отработать по этому условию? Не путайте "Внешние прерывания" и "Прерывания по активности на выводе".
    "The External Interrupts are triggered by the INT0 pin, INT1 pin or any of the PCINT7..0
    pins.
    И ноги Int0 и Int1 не входят в маску прерываний по активности на ногах. Так что конфигурация внешних прерываний у Вас ошибочна, точнее будет срабатывать еще и по активности на ногах PB0 и PB1. Поскольку обработчиков для них нет, то прога будет вылетать неизвестно куда.
    Ну не знаю,по крайней мере в симуляторе "дёрганье" ног PB0 и PB1 НЕ приводит к генерации прерывания, и в маску они у меня попадают и присутствуют ХЗ, но у меня в симуляторе работает

    А принцип то исходного - дёрнули в плюс ногу - прерывание - запустился таймер, считает, дёрнули ногу в ноль- прерывание - стоп таймер. Для этого алгоритма прерывание должно на ЛЮБОЕ изменение на ногах генерироваться, что на восход, что на закат ....

  34. #231

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    Андрей, а по какому признаку Вы определяете, что дерганье В0 и В1 не приводят к прерыванию? Только по тому что сим не матюкается? Я для того и предложил Вам дописать обработчик для прерывания PIN_Change, что при его наличии видно, что прерывание происходит. А вот почему не матюкается сим билдера непонятно, в Си написанная по Вашему образцу прога - не работает в симе аврстудио, нет обработчика по адресу вектора Pin_Change...
    По проге Антона сигналы от приемника заводятся на D2 и D3, за каким ..., спрашивается, нам нужно, чтобы камень отрабатывал по дерганью В0 и В1 и назначать прерывания по ним?
    INT0 - PD2, INT1 - PD3. PB0 - PCINT0, PB1 - PCINT1. Почувствуйте разницу, как говорится.

  35. #232

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Всем привет! Весь день проторчал в универе. Поэтому Ваши варианты буду пробовать только сейчас. Обязательно отпишусь о результатах!

  36. #233

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Цитата Сообщение от valera_o Посмотреть сообщение
    Андрей, а по какому признаку Вы определяете, что дерганье В0 и В1 не приводят к прерыванию?
    По карте флагов прерываний в самом билдере.... Там видно, насколько в железе корректно - ХЗ.

    Цитата Сообщение от valera_o Посмотреть сообщение
    По проге Антона сигналы от приемника заводятся на D2 и D3, за каким ..., спрашивается, нам нужно, чтобы камень отрабатывал по дерганью В0 и В1?
    Ну дык они у меня только на них и реагируют, ПД2 и ПД3, всё работает корректно, на В0 и В1 реакции НЕТ,ну в симуляторе, по крайней мере.... Я же говорю - в железе проверять надо...

    Цитата Сообщение от МаркАнтоний Посмотреть сообщение
    Поэтому Ваши варианты буду пробовать только сейчас. Обязательно отпишусь о результатах!
    Очень жду, тут вон какие страсти горят

  37. #234

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Валерий. Проверил два Ваших варианта. оба не работают!

    Попозже выложу свой вариант. Я его подчистил и написал пояснения. Но маленький баг пока остался!

  38. #235

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Цитата Сообщение от МаркАнтоний Посмотреть сообщение
    Валерий. Проверил два Ваших варианта. оба не работают!
    Гляньте мой, если не трудно, самому интересно!!!
    БАНо

  39. #236

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Цитата Сообщение от Catsw Посмотреть сообщение
    Гляньте мой, если не трудно, самому интересно!!!
    БАНо
    Андрей, работает и без бага. Спасибо за помощь! Буду чистить.

    Только в Вашем проекте прерывания с обоих каналов работают на поворотники. А так всё замечательно!
    Последний раз редактировалось МаркАнтоний; 19.01.2011 в 21:13.

  40. #237

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    Работает? Ну и славненько!
    Попробовал в железе. Работает мой сегодняшний вариант от 15.55 и вариант Андрея, но подача сигнала на В0 и В1 подвешивает прогу Андрея.
    Последний раз редактировалось valera_o; 19.01.2011 в 21:40.

  41. #238

    Регистрация
    15.08.2009
    Адрес
    na
    Возраст
    50
    Сообщений
    2,335
    Цитата Сообщение от МаркАнтоний Посмотреть сообщение
    Андрей, работает и без бага. Спасибо за помощь! Буду чистить.
    Рад что удалось помочь!!! В свое время (тогда с БАНО) наигрался и таймерами и прерываниями по самое..... горло Хотя должен признать, что использовал идеи Валерия частично - просто взял в теме последнее, что было

    А что почистить надо? Или вы про код?

    Цитата Сообщение от valera_o Посмотреть сообщение
    Работает? Ну и славненько!
    Ага, общими усилиями добили таки

  42. #239

    Регистрация
    17.06.2009
    Адрес
    Тула
    Возраст
    34
    Сообщений
    722
    Цитата Сообщение от Catsw Посмотреть сообщение
    А что почистить надо? Или вы про код?

    Ну да, хочу добавить ещё несколько режимов! Надо Прописать режимы включения фар. И добавить типа "аварийки" когда сигнал приёмника пропадает, только пока нет никаких мыслей по этому поводу!

    А ещё может кто сможет объяснить как работают магазинные блоки света что народ на машинки покупает. Которые работают от канала газа и поворота. Там же вроде и стопы загараются. Может кто в курсе?

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

  43. #240

    Регистрация
    17.06.2005
    Адрес
    Красный Луч - Харьков
    Возраст
    52
    Сообщений
    2,548
    Записей в дневнике
    9
    В канале газа определить "ворота" от 1400 до 1600, например, и зажигать стопы.

Закрытая тема

Похожие темы

  1. Продам БАНО
    от BigDaddy в разделе Барахолка. Аппаратура
    Ответов: 11
    Последнее сообщение: 03.09.2010, 00:58
  2. БАНО
    от блик2 в разделе Аппаратура радиоуправления
    Ответов: 16
    Последнее сообщение: 05.10.2008, 15:26
  3. ElectriFly Triton2 DC какие бананы?
    от Flatter в разделе Аппаратура и аксессуары для автомоделей
    Ответов: 2
    Последнее сообщение: 08.09.2008, 15:06
  4. Куда сходить в баню?
    от zero-209 в разделе Курилка
    Ответов: 4
    Последнее сообщение: 29.02.2008, 18:25
  5. Поиск схемы бортовых огней бано
    от NailMan в разделе Курилка
    Ответов: 20
    Последнее сообщение: 24.10.2006, 17:34

Ваши права

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