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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 18.04.2009, 11:28  
sh2cer
Временная регистрация
 
Регистрация: 18.11.2004
Сообщений: 63
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
sh2cer на пути к лучшему
По умолчанию

Никакого секрета , управление гидроклапаном , регулирует подачу масла на гидромотор , родная плата выгорела , востановлению не подлежит , залита эпоксидом примерно на сантиметр , выковыривать не получается .
Сделал самопальную на TTL логике , работает не совсем так как хотелось бы (пока работает в машине чтобы техника не простаивала , но нужно частенько подстраивать) .
Найти родную рабочую нереально , агрегат немецкий снят с производства лет этак 15 назад .
Реклама:
sh2cer вне форума  
Непрочитано 18.04.2009, 11:31  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от sh2cer
Извините по русски мне тяжело думать , а родной узбекский технически сильно ограничен .
Возмите мой пример и подставьте свои параметры и названия... опишите что имено вам нужно...

Я это так, от фонаря написал... почитал ваше описание и примерно сформулировал...

В принципе задачка как бы не сложная.. но для АСМа вычислять период в зависиомти от 3-х переменных будет не так уж просто.. Нужно на Си... а Си я только начал учить..
picavr вне форума  
Непрочитано 18.04.2009, 12:30  
AndreiVV
Гражданин KAZUS.RU
 
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
AndreiVV на пути к лучшему
По умолчанию

Готовую программу вряд ли кто вам даст тк занимает время на написание и отладку, а помочь исправить кусок кода помогут.
Давайте для начала что вы не понимаете(ацп, таймеры, или сам Си) или не получается? желательно прицепить проект. Проще разделить задачу на более мелкие. Для начала скажем научитесь работать с ацп, потом с таймерами а уже в конце все собрать в один проект.
AndreiVV вне форума  
Непрочитано 18.04.2009, 15:21  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию

R4 определяет задержку сигнала относительно изменения R2 (то есть изменяем R2 и через заданное R4 время появляется/изменяется сигнал на выходе) или определяет время сигнала на выходе (т.е. изменяем R2 и на выходе на время заданное R4 появляется сигнал). Уточните этот момент. А так задача вполне проста и и реализация сложностей не вызовет. Тока я смогу это реализовать в avr-gcc (сижу под Линуксом) в Вынде это будет WinAvr. И из личной практики - Вам обязательно на подстройку и регулировку ставить именно резисторы? ибо вещь не слишком надежна и шуршит при регулировке. Если подстроечные резисторы устанавливаются один раз то луч их выкинуть и задавать параметры с клавиатуры или, если есть возможность, с компа через USART. Ибо при использовании резисторов предется эксперементировать с фильтрацией ложных срабатываний, а при условии достаточно быстрой реакции на изменения это задача далеко не столь проста как кажеться.
_guardianangel вне форума  
Непрочитано 18.04.2009, 16:40  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Что понял, то и написал. Показания 1 и 3 потенциометра схватываются при инициализации, т.е. в момент включения, а 2 опрашивается в основном цикле. Вот что с 4 делать....Проект в кодевижин и протеусе прилагаю.

Прикрепленный файл: 5017766.rar
__________________
warez
urry вне форума  
Непрочитано 18.04.2009, 17:33  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Прочитал тему сначала, вроде доходит - вот вторая часть марлезонского балета.
Участок кода инициализации
Код:
//cчитываем положение 1 резистора для определения периода
tperiod=read_period();
//теперь берем от этого числа 10 часть для определения
//градации регулировки 3 резистором 
s.na=tperiod/10;
// делим на 256
s.na››=8; // получили градацию для 3 резистора
//считываем значение 3 резистора
t1min=readr3(s.na);
//вычисляем градацию для 2 резистора
s.real=tperiod-t1min; // общий период - минимальная длительность
// делим на 256
s.real››=8; // получили градацию для 2 резистора
//считываем значение 2 резистора
do{
t1real=readr2(s.real);
}while(t1real ›0);
//ожидаем возврата 2 резистора в 0 положение
//вернули, запускаем задержку от 4 резистора
/*задержка будет в милисекундах - 
градация 10000 милисекунд на 256 -39 милисекунд 
*/
 tdelay=readr4(39); //
delay_ms(tdelay);
 //-------------------------------------
t1real+=t1min;   // реальная длина импульса =считанная+минимальная
if (t1real ‹ 5) 
    {
    tmr_stop();
    }
    else{
    
// получили значение импульса, вычисляем паузу
t1pause=tperiod-t1real;
// заносим в счетчики
imp.imp.all=65536-t1real;
imp.pau.all=65536-t1pause;
  tmr_start();
  }
Проект - второй вариант

Прикрепленный файл: 6387032.rar
__________________
warez
urry вне форума  
Непрочитано 20.04.2009, 09:56  
sh2cer
Временная регистрация
 
Регистрация: 18.11.2004
Сообщений: 63
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
sh2cer на пути к лучшему
По умолчанию

Спасибо огроменное , пока не смотрел что получилось , поставил на закачку 7 протеус , у меня 6.9 не открывает ,
все вопросы потом .
sh2cer вне форума  
Непрочитано 20.04.2009, 18:25  
sh2cer
Временная регистрация
 
Регистрация: 18.11.2004
Сообщений: 63
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
sh2cer на пути к лучшему
По умолчанию

To urry
По отдельности все резисторы работают правильно , вместе есть нестыковки , хотя если я правильно понимаю ваши комменты всё должно быть как надо.
Появилось много вопросов :
if (t1real ‹ 5)
{
tmr_stop();
}
else{
почему 5 , или почему t1real+=t1min; до этого цикла стоит .
и ещё не понятно почему в работе RV2 при установке его в ноль импульсы идут длительностью t1min .
Если RV2 в нуле никаких движений не должно быть .
Есть ещё моменты непонятные но хочется разобраться по порядку , хочу понять сам как весь код работает , правда признаюсь тяжко с наскока , но стараюсь .
sh2cer вне форума  
Непрочитано 20.04.2009, 20:39  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Сообщение от sh2cer
Появилось много вопросов :
if (t1real ‹ 5)
{
tmr_stop();
}
else{
почему 5 ,
Как бы скидка на возможную помеху, в идеальных условиях можно поставить 1
Сообщение от sh2cer
или почему t1real+=t1min; до этого цикла стоит .
и ещё не понятно почему в работе RV2 при установке его в ноль импульсы идут длительностью t1min .
это уже я не понял до конца, т.е. в рабочем цикле должно быть

Код:
while (1)
      {
//считываем значение 2 резистора
t1real=readr2(s.real);
//t1real+=t1min; здесь строчку комментируем и переносим вниз
if (t1real ‹ 5) 
    {
    tmr_stop();
    }
    else{
// получили значение импульса, вычисляем паузу
// и переносим сюда
t1real+=t1min;// новая строчка !!!! добавляем миним значение
t1pause=tperiod-t1real;
// заносим в счетчики
imp.imp.all=65536-t1real;
imp.pau.all=65536-t1pause;
     tmr_start();
     }
Так ?
__________________
warez
urry вне форума  
Непрочитано 21.04.2009, 12:08  
sh2cer
Временная регистрация
 
Регистрация: 18.11.2004
Сообщений: 63
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
sh2cer на пути к лучшему
По умолчанию

Переставил , скомпилил , не выходит .
При первом включении всё верно выходит : импульс = t1real+=t1min , в рабочем цикле при переходе RV2 в ноль
импульс = t1min , должно быть 0 т.е. ничего не должно быть , ничего не понимаю ?
sh2cer вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите отладить программу АЦП на AVR Alexander48 Микроконтроллеры, АЦП, память и т.д 8 30.11.2009 14:07
Помогите откорректировать программу 2517212 Микроконтроллеры, АЦП, память и т.д 21 18.11.2008 01:13
Помогите найти программу. un9gw Proteus, KiCAD и другие ECAD 1 13.04.2007 21:43
Помогите написать программу для микросхемы pic16f84 lexacs Микроконтроллеры, АЦП, память и т.д 0 27.01.2005 00:45


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


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