| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Софтуеърен таймер за 60 000 000 цикъла (PIC16C74) http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=6863 |
Страница 1 от 2 |
| Автор: | iorgov [ Пон Юни 01, 2009 3:30 pm ] |
| Заглавие: | Софтуеърен таймер за 60 000 000 цикъла (PIC16C74) |
Трябва ми такъв таймер с грешка най-много до ±100 цикъла. опитах се да го направя,но в края изброините цикла са с около 1 милион повече ще съм ви много благодарен ако ме насочите към някой сайт |
|
| Автор: | relsys [ Пон Юни 01, 2009 6:44 pm ] |
| Заглавие: | |
Таймер или брояч? Дай по - подробни данни де. |
|
| Автор: | iorgov [ Пон Юни 01, 2009 8:31 pm ] |
| Заглавие: | |
Значи Поставената ми задачата е да се направи управлението на следяща соларна система. Системата е снабдена с два мотора за завъртене по осите Х и Y Нужен ми е този таймер (или брояч) за да мога да казвам на моторите да се въртят в определена посока за 1 мин. И след това имам изчакване от 5 мин за което мисля да използвам този от 1 мин и да го повторя 5 пъти. След което се стартира на ново програмата събира данните и решава на къде да се завърти.Замислено е системата да работи 24 часа без прекъсване. Проблема в този таймер който организирах аз е че за 1 мин напредва с ~1.6 s. а за 5мин с ~8 s. Може да сметнете за 24 колко ще напредне ПИК-ът работи на 4MHz времете за изпълнение на един цикъл е 1 микросекунда. Само да спомена че това ми е дипломната работа |
|
| Автор: | ToHu [ Пон Юни 01, 2009 8:41 pm ] |
| Заглавие: | |
Ами проблема ти не е в таймера или в софтуера а в честоата на процесора, въпреки че тази секунда за 1 мин е доста дори и за вътрешния осцилатор. Тези процесори имат регистър дето им пишеш корекция за генератора, но така или иначе не очаквай чудеса с вградения осцилатор, той си е RC, т.е. дори да го натъкмиш някак да работи при теб, на полето като го напече слънцето и стане 60 градуса ще мръдне не малко. По добрия вариант бучни един 32 кхц да ти е мирна главата, а пък ако искаш сложи и и голям, направо в Мхз. Иначе от самото ти описание не е съвсем ясно каква ти е идеята ама както и да е, следил съм слънцето и си представям какво искаш да направиш |
|
| Автор: | iorgov [ Вто Юни 02, 2009 4:21 pm ] |
| Заглавие: | |
Готово! Таймера е направен, не е както исках, но определено е по-добре отчита 59,958 секунди |
|
| Автор: | tgi [ Вто Юни 02, 2009 5:02 pm ] |
| Заглавие: | |
Браво, че си се справил. Но пишеш сякаш си дизасемблер.... Когато се пише на асемблер, ако искаш да пишеш свестен код, се пише коментар на всеки ред; и имената, които избираш за символите трябва да носят съответния възможно най-очевиден за човек смисъл. Ще се учудиш колко по-бързо върви програмирането като почнеш с текст (на всеки ред) да обясняваш защо правиш каквото правиш на тоя ред (не и да обясняваш синтаксиса, очаква се който чете да го знае). И нищо, ако английският ти не е много красив за коментарите и имената; важното е да е разбираем. |
|
| Автор: | maiden [ Вто Юни 02, 2009 5:45 pm ] | |||||||||
| Заглавие: | ||||||||||
ами то хората са си направили колкулаторче за цикли..може и цикли може и секунди http://www.golovchenko.org/cgi-bin/delay ето примерен код за 60сек на 4мхз
|
||||||||||
| Автор: | iorgov [ Вто Юни 02, 2009 5:54 pm ] |
| Заглавие: | |
maiden благодаря за посочения сайт. от сега нататък само него ще ползвам |
|
| Автор: | smtp [ Вто Юни 02, 2009 6:01 pm ] |
| Заглавие: | МъЪЪка, МъЪЪка |
такова решение - само пикоборец може да измисли ! то по-добре сложи един механичен будилник (ще мери по-точно) предполагам че за прекъсвания, таймери ... не си чувал ! |
|
| Автор: | maiden [ Вто Юни 02, 2009 6:10 pm ] | |||||||||
| Заглавие: | ||||||||||
е стига де ...всеки рано или късно достига истината. Човека пита нещо конкретно и е редно в унисон с него да му се отговори, пък дали има и по-добри начини сам ще се научи!! |
||||||||||
| Автор: | iorgov [ Вто Юни 02, 2009 6:25 pm ] | |||||||||
| Заглавие: | ||||||||||
ами не чувал съм просто трябва да си предам работата до 11-ти юни, а за таймери нищо не знам и трябва да чета, а време няма пак преди това ми се е налагало да организарам таймер на СМ600 по подобен на горният начин и за това реших да използвам него. Просто сметките не ми излизаха и за това се обърнах към вас за помощ. За която благодаря |
||||||||||
| Автор: | ToHu [ Вто Юни 02, 2009 6:57 pm ] |
| Заглавие: | |
мммммммм шах и мат ... не се сърди, ама ако съм ти един ръководител недай си боже изпитващ и ми дойдеш с такъв код ще те изгоня, това което си направил означава тотално непознаване на архитектурата. Разбирам че е динпломна работа, и че може би не си много в час, ама ако не знаеш питаш .. чакай да види Киров Относно горния коментар за пикобореца, това няма нищо общо с пика, и с арма мое се сътвори същото. Значи тоя твоят пик си има хардуерни таймери. Праиш си една 32 битова променлива, инкрементваш я във всяко прекъсване и толкоз ...... |
|
| Автор: | woody [ Вто Юни 02, 2009 7:35 pm ] | |||||||||
| Заглавие: | ||||||||||
Ако ти се смятат сложните цикли на конвейра и достъпът към различните памети. И то естествено ако няма кеш. |
||||||||||
| Автор: | a_stankov [ Вто Юни 02, 2009 9:18 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Това нещо така сътворено няма да работи.Прегледай си кода и ще разбереш защо,някои инструкции изискват дестинация за резултат. |
|||||||||||||||||||
| Автор: | relsys [ Вто Юни 02, 2009 9:53 pm ] |
| Заглавие: | |
То не трябва да работи, дипломна работа е... |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|