|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 7:58 am
|
Страница 1 от 1
|
[ 6 мнения ] |
|
PIC16F886 & DS1631 & Динамична индикация ?
| Автор |
Съобщение |
|
BONGO
Ранг: Новодошъл
Регистриран на: Сря Ное 10, 2004 1:06 am Мнения: 161 Местоположение: Нова Загора
|
 PIC16F886 & DS1631 & Динамична индикация ?
Здравейте! Дали е възможна тази комбинация - процесора е PIC16F886, имам 3 разредна седемсегментна динамична индикация и температурен I2C сензор DS1631.
Идеята е да се изобразява температурата на седемсегментия дисплей, само ме притеснява дали е възможно, защото цикъла на четене на DS1631 при най голямата точност е 750мс, не знам дали ще успявам да опреснявам дисплея. Сорса за управлвнието на LED съм го написал, въпроса е през колко време да го опреснявам, за да не се получава много видимо мигане.
Благодаря!
|
| Нед Мар 29, 2009 10:55 am |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Ами принципно се смята че човешкото око различава максимум 24 кадъра в секунда, но когато аз съм пробвал повече от 15 пъти опреснение в секунда не се усеща съществено. За това от 15 нагоре би трябвало да ти върши работа  А и нищо не пречи да експериментираш. Плюс това никой не е казал че трябва да опресняваш дисплея само когато прочетеш новата температура. Ти си го опреснявай примерно 15пъти в секунда, пък когато получиш нова стойност си я изобразявай. Но това ще стане разбира се само, ако ползваш хардуерно I2C .
|
| Нед Мар 29, 2009 11:42 am |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
 Re: PIC16F886 & DS1631 & Динамична индикация ?
Направи си в програмата буфер, в който измерването да вкарва сметнатата температура, направо в сегментен код.
Самата визуализация я вкарай в едно таймерно прекъсване, приблизително 200 -250 пъти в секунда, и на всяко прекъсване въртиш поредния знак от дисплея. Двете функции (меренето и дисплея) ще си работят независимо една от друга.
|
| Нед Мар 29, 2009 11:55 am |
|
 |
|
Cino
Ранг: Новодошъл
Регистриран на: Чет Окт 02, 2008 10:24 pm Мнения: 105
|
750 ms e convertion time.
т.е. стартирш конвертиране със съответната команда,
и след 750ms си прочиташ температурата,
Няма смисъл контролера да чака 750ms.
Примерно 1път в секунда комуникираш с датчика.
Първо прочиташ готовата температура,
след това стартираш ново конвертиране.
|
| Нед Мар 29, 2009 12:34 pm |
|
 |
|
optron
Ранг: Ориентиран
Регистриран на: Чет Ное 20, 2008 1:49 pm Мнения: 276 Местоположение: Бургас
|
Нещо подобно правих и аз, само че ставаше въпрос за ШИМ и четене на АЦП. Аз го направих така - Въртя си цикъла за импулсите и през паузата между два импулса проверявам флага за готовност на АЦП. Ако е готов, прочитам стойността и я зареждам в променлива, където после ще я използвам, след което бутам АЦП отново да измерва. Това ми отнема 2-3 цикъла и не се забелязва, ако изобщо повлияе на импулса ми - процесорът работи на 4 МХц. Тази променлива по принцип се ползва преди всяко начало на цикъла на импулса, непосредствено след проверката и четенето на АЦП.
Нещо такова ще стане и при теб, ако използваш хардуерен интерфейс за комуникация със сензора. Доколкото разбирам, той е с И2С, а ПИК-овете имат такъв интерфейс. Така, след всяка смяна на фазата на индикацията проверяваш дали интерфейсът има нещо за теб и ако има, четеш.
Сега говоря малко наизуст, възможно е да изпускам значими неща относно И2С интерфейса на ПИК-овете...
_________________ Digitally yours: Optron
|
| Пон Мар 30, 2009 3:13 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ами не виждам проблем, още повече ако I2C ти е хардуерно, както по горе казаха няма нужда да зацикляш в едно състояние и да не правиш нищо. Ако е като при one wireдатчиците им мисля че се полираше някакъв регистър за ADC complete, т.е това полиране може да го правиш през някакъв интервал. Освен това аз си мисля че времето зависеше и от това колко битов резултат искаш.
|
| Пон Мар 30, 2009 9:01 pm |
|
|
|
Страница 1 от 1
|
[ 6 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 0 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|