| Автор |
Съобщение |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
 Мерене на обороти
Имам следната задача да замеря обороти за една минута.
Първоначално го направих като ползвам таймер на PIC18 процесор.
Меря за някакъв период да кажем 500ms и смятам колко е за една минута.
Това работи но за по високи обороти ако оборотите са под 200 започва да не е точно.
Чудя се как да реализирам този оборотомер да може да хваща и 10 оборота.
Измислих да меря дължината на импулса като в първия момент ми дойде следното
хрумване:
1. Нулирам таймера и му сетвам максимална стойност.
2. Разрешавам прекъсване и чакам да се активира препълване
тоест да хване следващия импулс.
3. При активиране на прекъсването си запомням текущо колко ми е времето
с точност 100us.
4. Нулирам пак таймера и му сетвам максимална стойност.
5. Разрешавам прекъсване и чакам да се активира препълване.
6. При активиране на прекъсването меря колко е текущото време вадя от
първоначалното и така получавам с точност 100us колко е дълъг сигнала
и изчислявам колко оборота са за минута и показвам на екрана.
Чудя се дали има по добър метод от този който описах.
Може да се ползва и PORTB interupt on change но мисля че пак
ще е същия принцип.
Някой ако го е правил това моля да сподели как най добре и лесно става с PIC18/16 процесори.
|
| Пон Апр 07, 2008 10:33 am |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Заинтересувай се от CCP (capture-compare) перифериите, те са точно за това
|
| Пон Апр 07, 2008 11:11 am |
|
 |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
Разгледах го но то само улеснява че детектва rising/falling edge.
Иначе процеса пак е същия взимаш си текущото състояние на
таймер брояча.
Понеже меря на RA4 честота и брояч за да ползвам CCP-то дали
е добра идея да свържа директно RA4 към CCP1 вход на процесора?
Някой връзвал ли ги е така паралелно тия два входа?
|
| Пон Апр 07, 2008 4:18 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
Очевидното решение е да мериш период и да смяташ
от него честота, когато става дума за ниски честоти, какъто е случаят.
Последните 20+ години вече губя бройката на този си отговор на този
въпрос - е, сега архивиран във форума белким хване по-добре  .
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Пон Апр 07, 2008 8:19 pm |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2277
|
Погледни една блокова схема на честотомер. Каво ли ще се получи ако управляваш gate с входния сигнал, а на входа подадеш някакъв сигнал с точно определена честота ? Остава да сметнеш дали при максимални обороти грешката, която се получава не става много голяма.
|
| Пон Апр 07, 2008 9:48 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Не се надявай, вече го има архивиран само в този форум поне на 3-4 места  И пак не хваща  Съжалявам 
|
| Вто Апр 08, 2008 10:24 am |
|
 |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
Така изясни ми се  и точно какво да ползвам от CCP модула на процесора.
И тук идва един проблем за да мога да хвана малки обороти трябва да пусна таймера
на много ниска честота. Иначе много бързо се препълва и трябва да слагам допълнителен
брояч за препълването.
Ситуацията е следната ако сложа такъв брояч то нямам гаранция, че при генериране на
прекъсване от CCP модула когато е копирал стойността на таймера то моя брояч на
препълване ще бъде валиден тоест ще съответства точно на това което CCP-то е взело.
Мога да сложа и по нисък кварц и да ползвам външен такт само за таймера за CCP,
но ми се ще да мина без него.
На високи обороти нямам никакъв проблем, но на ниски нещо както измислих това с
препълването не бачка много добре. Предполагам че е от грешка в сметките и делението.
Правя го като ползвам unsigned long и натрупвам в него и смятам оборотите като деля
и при това деление нещо се намазва.
|
| Вто Апр 08, 2008 10:25 am |
|
 |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
Сега си видях грешката като съм добавял препълването не съм го кастнал към
unsigned long и то си го е смятало като int и не е слагало правилно препълването.
Всичко си работи  так че съм много доволен.
Дано да послужи този разговор на други които правят първи стъпки в CCP capture.
|
| Вто Апр 08, 2008 10:46 am |
|
 |
|
bongo-bongo
Ранг: Почетен член
Регистриран на: Нед Юли 29, 2007 2:41 pm Мнения: 610
|
Ся се сетих, че обороти се мерят и онлайн: http://www.i_dachev.homo.com 
_________________ Тя простотията по хората ходи
|
| Сря Апр 09, 2008 1:05 am |
|
 |
|
kasparov
Ранг: Почетен член
Регистриран на: Сря Апр 05, 2006 9:52 pm Мнения: 877 Местоположение: Разград
|
Не виждам раздел в този форум, където да има място за такива включвания, а ако форума е сериозен, те е ясно
какво би следвало за автора. Най лесно е да се из****ш на метеното.
|
| Сря Апр 09, 2008 10:02 am |
|
 |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
Помогнах му един път на бонго бонго да си намери нещо в нета и големи благодарности ми писа.
Но явно е сметнал че моите въпроси заслужават такива отговори, знам ли той си се излага сам.
Това че питам за неща който до сега не съм се занимавал, не означава че съм писал просто ей така
да си начешам крастата. Потърсих най обстойно във форума и не видях отделна тема как се мерят обороти
от най елементарните неща за това и реших да пиша.
|
| Сря Апр 09, 2008 2:58 pm |
|
 |
|
wolfshark
Ранг: Минаващ
Регистриран на: Пон Ное 26, 2007 11:34 pm Мнения: 95 Местоположение: Видин
|
Той имаше в предвид брояча долу дето брои завърнтанията. 
|
| Сря Апр 09, 2008 4:15 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
http://www.mcu-bg.com/mcu_site/viewtopi ... 0%E8%EE%E4
Тук темата е разнищена доста подробно. (за честота/период)
Бонго, точно от тебе такава простотия не очаквах  Направо си за баннн, мен ако питат
|
| Сря Апр 09, 2008 4:20 pm |
|
 |
|
Koleto
Ранг: Форумен бог
Регистриран на: Съб Фев 18, 2006 11:55 pm Мнения: 1301 Местоположение: София
|
Бонго,
Язък ти за подписа дето си си го сложил...
_________________ Някой ден и костенурките ще се научат да летят...
|
| Сря Апр 09, 2008 5:39 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
А стига бе, "Сухари" такива! А ми човека явно искаше да разведри темата. Я малко по-весело, да не би да е показал до сега лоши намерения, я му вижте постовете! 
|
| Сря Апр 09, 2008 6:21 pm |
|
|