| Предишната тема :: Следващата тема |
| Автор |
Съобщение |
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 написа: | | Ще стане! |
А как ще стане ако не е тайна ?
Това ми е въпроса. Как да направя брояч.
брои от началото на програмата и си брои и брои...
С него няма да стане. Аз искам да почне когато искам и няколко реда по на долу да ползвам стойността. _________________ Начинаещ |
|
| Върнете се в началото |
|
 |
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)
{
//код
.........
}
|
Така ще върти постоянно това което е сложено вътре в този цикъл.
Ама това са елементарни неща,които трябва да се знаят.Вземи и прочети от кора до кора поне една книжка за С,решавай задачки който има вътре и т.н..Само с желание и искане не стават нещата... _________________ Не мога да знам всичко,а и не искам.Тогава би било прекалено лесно и скучно! |
|
| Върнете се в началото |
|
 |
|