Форум за електроника Форуми Форум за електроника
Български форум за електроника, ремонти, схеми, документация
 
 Въпроси/ОтговориВъпроси/Отговори   ТърсенеТърсене   ПотребителиПотребители   ГрупиГрупи   Регистрирайте сеРегистрирайте се 
 ПрофилПрофил   Влезте, за да видите съобщенията сиВлезте, за да видите съобщенията си   ВходВход 

Искам да броя времето - Ардуино
Иди на страница 1, 2  Следваща
 
Създайте нова тема   Напишете отговор    Форум за електроника Форуми -> Общи приказки - Just talking



Предишната тема :: Следващата тема  
Автор Съобщение
glizan
Опитен потребител
Опитен потребител


Регистриран на: 02 Мар 2007
Мнения: 113
Местожителство: София

МнениеПуснато на: Съб Авг 06, 2011 19:13    Заглавие: Искам да броя времето - Ардуино Отговорете с цитат

Здравейте,

опитвам се да направя нещо, но ми се налага да сложа някакъв таймер, който да ми отчита времето.

Искам когато едно условие стана истина, таймерът да се включи, а по надолу в кода да използвам тази стойност за да задам време на изчакване.

Код:
if(truth)

{

БРОЯЧА СЕ ПУСКА;

}

...

delay(СТОЙНОСТТА ОТ БРОЯЧА);


Това може ли да стане?
_________________
Начинаещ
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
the_bull
Опитен потребител
Опитен потребител


Регистриран на: 31 Май 2007
Мнения: 660
Местожителство: Монтана(Студент в Русе)

МнениеПуснато на: Съб Авг 06, 2011 23:42    Заглавие: Отговорете с цитат

Ще стане, Но внимавай с времената и взимай предвид разрядността на броячите. Може да се препълни брояча и да имаш сериозни грешки!
_________________
Постулат на Хорнер за петте удара:
"Опитът е право пропорционален на потрошеното оборудване."
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
glizan
Опитен потребител
Опитен потребител


Регистриран на: 02 Мар 2007
Мнения: 113
Местожителство: София

МнениеПуснато на: Нед Авг 07, 2011 0:38    Заглавие: Отговорете с цитат

the_bull написа:
Ще стане!


А как ще стане ако не е тайна ? Laughing

Това ми е въпроса. Как да направя брояч.

Код:
millis();


брои от началото на програмата и си брои и брои...

С него няма да стане. Аз искам да почне когато искам и няколко реда по на долу да ползвам стойността.
_________________
Начинаещ
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
slav4o.com
Опитен потребител
Опитен потребител


Регистриран на: 04 Юли 2004
Мнения: 2970
Местожителство: Велико Търново

МнениеПуснато на: Нед Авг 07, 2011 1:20    Заглавие: Отговорете с цитат

Добре де ама не си казал какво искаш, като стане еди си какво и почваме да броим с брояча и само това.... до определена бройка и продължаваме нататък после, или като стане еди си какво пускаме нещо си да брои брояча, докато се правят другите неща и като стане нещо друго си, се проверява какво е изброил брояча.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
the_bull
Опитен потребител
Опитен потребител


Регистриран на: 31 Май 2007
Мнения: 660
Местожителство: Монтана(Студент в Русе)

МнениеПуснато на: Нед Авг 07, 2011 9:34    Заглавие: Отговорете с цитат

Разгледай готови сорсове в нета. Не съм се занимавал с Ардуино и не мога да ти кажа как става конкретно. Подобни неща съм правил с Атмега 32. разгледай хелпа или Еxamples на ардуино може би ще има подобно нещо. Ако ли не разгледай хелпа на mikroelectronika, който предлагат там има много примери как да използваш броячите.
_________________
Постулат на Хорнер за петте удара:
"Опитът е право пропорционален на потрошеното оборудване."
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
nobodyshadow
Опитен потребител
Опитен потребител


Регистриран на: 24 Яну 2004
Мнения: 413
Местожителство: Сливен

МнениеПуснато на: Нед Авг 07, 2011 11:10    Заглавие: Отговорете с цитат

С какъв чип ти е платката?Теглиш му пдф-а и си гледаш вътре има написано какво и как.Търсиш 8-bit Timer/Counter0 with PWM или нещо
подобно там има описано как да си инициализираш и настроиш таймера.
_________________
Не мога да знам всичко,а и не искам.Тогава би било прекалено лесно и скучно!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
glizan
Опитен потребител
Опитен потребител


Регистриран на: 02 Мар 2007
Мнения: 113
Местожителство: София

МнениеПуснато на: Нед Авг 07, 2011 12:00    Заглавие: Отговорете с цитат

Вижте.. щом пиша във форум значи най-вероятно съм се опитвал няколко дена и не съм се справил.

Този път няма да правя грешката - да обяснявам подробно какво искам да правя защото темата пак ще се извърти в друга посока

(Къде е спирката на метрото. За какво ти е спирката на метрото? За да стигна до центъра. Еми тогава ходи с кола.)

Надявам се че сте ме разбрали.

Опростено ще обясня отново какво искам да стане на практика.

1. Ако на първи пин подам HIGH
2. На втори пин нивото от LOW да стане HIGH
3. Стои една секунда HIGH
4. Връща се в LOW и стои там до като на пин едно съм подал HIGH

За това искам брояч. За да преброя времето от когато съм подал HIGH на първи пин. Защото ред номер 4 трябва да се изпълнява точно толкова време.
_________________
Начинаещ
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
nobodyshadow
Опитен потребител
Опитен потребител


Регистриран на: 24 Яну 2004
Мнения: 413
Местожителство: Сливен

МнениеПуснато на: Нед Авг 07, 2011 13:55    Заглавие: Отговорете с цитат

Код:

// инициализация
.........

 if(PINA_Bit1==1)   // Точка 1
{
 PORTA_Bit2=1 ;  //Точка 2
 delay(1000);     //Toчка 3
   while(PINA_Bit1==1)  //Точка 4
   {
    PORTA_Bit2=0;
   }
}





Ето ти по точките който си дал по горе....Това е с информацията която си дал.
Възможно е да не ти приеме по този начин записването на Портовете.Не съм го ползвал това ардуино.Може да се наложи да ги напишеш по неговия си начин.Просто като пример го ползвай това.Успех!


пс. това delay(1000); е от тук- http://arduino.cc/en/Reference/Delay
_________________
Не мога да знам всичко,а и не искам.Тогава би било прекалено лесно и скучно!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
glizan
Опитен потребител
Опитен потребител


Регистриран на: 02 Мар 2007
Мнения: 113
Местожителство: София

МнениеПуснато на: Нед Авг 07, 2011 16:57    Заглавие: Отговорете с цитат

Да, точно това искам. Само дето тази програма искам да се използва многократно. А сега след като while цикълът се изпълни програмата спира. Аз искам след това когато "1" стане нула програмата отново да се върне горе - още преди if функцията.


Иначе така си работи перфектно, но само един път.
_________________
Начинаещ
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
nobodyshadow
Опитен потребител
Опитен потребител


Регистриран на: 24 Яну 2004
Мнения: 413
Местожителство: Сливен

МнениеПуснато на: Нед Авг 07, 2011 17:43    Заглавие: Отговорете с цитат

Код:

while(1)
{
//код
.........
}

Така ще върти постоянно това което е сложено вътре в този цикъл.
Ама това са елементарни неща,които трябва да се знаят.Вземи и прочети от кора до кора поне една книжка за С,решавай задачки който има вътре и т.н..Само с желание и искане не стават нещата...
_________________
Не мога да знам всичко,а и не искам.Тогава би било прекалено лесно и скучно!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
Покажи мнения от преди:   
Създайте нова тема   Напишете отговор    Форум за електроника Форуми -> Общи приказки - Just talking Часовете са според зоната GMT + 2 Часа
Иди на страница 1, 2  Следваща
Страница 1 от 2

 
Към:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети


Powered by phpBB © 2001, 2005 phpBB Group
Translation by: Boby Dimitrov
Where to Find Free Service Manuals