Отговори на тема  [ 126 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5, 6 ... 9  Следваща
Регулиране на температура 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
glupcho написа:
ОХ пак проблем :?
Тоя датчик нали дава двоична информация, а дисплея работи с ASCII кодовете ... Та как се предполага че ще ми визуализира температурата в десетично число :(


Със IntToStr();


Сря Сеп 08, 2010 9:32 am
Профил ICQ WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Юли 28, 2010 1:34 pm
Мнения: 58
Мнение 
Аа и още нещо се сетих. Тъй като на мен не ми трябва толкова голяма точност каквато предлага TC77, дали мога ли да прочета само старшите 8 бита а останалите да се игнорират :idea:


Сря Сеп 08, 2010 6:11 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Юли 28, 2010 1:34 pm
Мнения: 58
Мнение 
relsys написа:

Със IntToStr();


Това изглежда като С, а аз не го разбирам все още :( Моята програма е на асемблер


Сря Сеп 08, 2010 6:13 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
glupcho написа:
Аа и още нещо се сетих. Тъй като на мен не ми трябва толкова голяма точност каквато предлага TC77, дали мога ли да прочета само старшите 8 бита а останалите да се игнорират :idea:


Естествено, че можеш. Нали точно за това подават първо старшите, и доколкото си спомням разделителната способност става 1 градус.


Сря Сеп 08, 2010 6:13 pm
Профил ICQ WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение 
hi :)
датчика ти дава температурата в двоична дума, следва да се превърне в десетични числа, и след това на всяко му добавяш 0х30 за да получиш аски. от двоично в десетично става с поетапно делене на 100 и 10 и остатъка ти е единиците, а 0х30 се добавя с инструкция иор (IORLW)
успех


Чет Сеп 09, 2010 1:37 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Юли 28, 2010 1:34 pm
Мнения: 58
Мнение 
Благодаря ти, ще се опитам да го осмисля.
А междувременно ако се сещате за датчик който дава 8битова стойност ще е много добре, че аз пък не мога да се сетя как ще ми се сравняват двете числа ( на зададената и измерената температура) като едното е 8битово пък другото 16.
А варианта да взема само първите 8 бита от TC77 отпада, понеже по моите изчисления ще се получава голяма грешка (1 градус) :evil:


Пет Сеп 10, 2010 12:34 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение 
последно, зададената в 16 бита ли я имаш, не разбрах. за датчик на 8 бита цифров поне аз не се сещам, иначе няма смисъл. така че или вземаш цялата стойност, или докъдето ти е приемливо за точността, като за мен в твоя случей един градус не е малко.
По отношение на ставняването, какво му има, сравняваш си ги без проблем. едно 3 разрядно десетично по-малко ли е от едно двуразрядно?
крайния ти вариант е да позваш аналогово мерене през ацп-то на пика


Пет Сеп 10, 2010 1:14 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Юли 28, 2010 1:34 pm
Мнения: 58
Мнение 
зададената е 8битова, а измерената е всъщност 13(тази от TC-то).
Вече и аз се замислям за аналоговият вариант, иначе ако остане с цифровия и искам да ми е по точен, ми се струва че и програмата за преобразуване от двоично в десетично число ще ми се усложни. Пък аз още тази за 8бита не знам как работи :oops:
Засега обаче имам материал за мислене и няма да досаждам с повече въпроси, а вие ако се сетите нещо помощно - пишете (като например някаква примерна програма за преобразуване от двоично в десетично число)

Благодаря на всички за съдействието!!!


Пет Сеп 10, 2010 3:46 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение 
а как си с точността? за 13 бита имаш госта голяма точност
а полученото число делиш поетапно на 100 и на 10, като на всяко делене си улеличаваш стотиците и десетиците с единица, а остатъка ти е точно единиците. става с два цикъла
ацп-то също е 12 бита, но там лесно можеш да вземеш само старшите 8 бита, колкото ти е желаната стойност де, и да си получиш десетично число, като в едно 8-битово имаш до 256 градуса
ако не можеш да се справиш, ще ти напиша циклите за получаване на десетичното число


Пет Сеп 10, 2010 4:56 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Юли 28, 2010 1:34 pm
Мнения: 58
Мнение 
Еййй супер ще е ако ми го напишеш. В пъти по-лесно ще се светна как става :idea:
Иначе си се спирам на цифровия, така и така толкова време се занимавах с тоя SPI. Мисля че ако трябва да отделя толкова и на АЦП-то ще ми се убие всякакво желание :lol:
А и смятам, че 8те бита от цифровия все пак ще ми стигнат.


Пет Сеп 10, 2010 6:13 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
http://www.piclist.com/techref/microchi ... /index.htm :idea: :idea: :idea:


Пет Сеп 10, 2010 11:48 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Юли 28, 2010 1:34 pm
Мнения: 58
Мнение 
ji4ka, благодаря ти за линка, ама тея програми ми идват малко извънземни особено като нямат коментари. Пък мен ме интересува какво точно се случва с това число и чисто от математическа гледна точка (като например това делена на 100 как се осъществява и това 100 двоично ли е или ... )
Така че ако didofen все пак има желанието да сподели неговата версия ще е много полезно.

Друг проблем ми изникна при симулация на програмата с LCD-то. Използвам PIC Simulator IDE. Та как да направя така, че при натискасне на бутона,който дава ниско ниво на MCLR крачето да се ретсартира процесорa. Гледам че има някакъв регистър PCON, ама там не виждам нищо да пише за ресетване по време на нормална работа :?


Нед Сеп 12, 2010 9:11 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9136
Местоположение: Разград
Мнение 
Този регистър няма нищо общо с външния резет. Той е само за индикация какво се е случило "преди малко". При определени условия (BOR, POR и др) се сетват определени битове. За да резетваш проца отвън трябва просто във фюзовете да е разрешен резета, ако въобще е възможно, щото има чипове дето си е твърдо резет - No other options :)


Нед Сеп 12, 2010 9:48 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение 
та значи. ти не можеш да го ресетнеш или не можеш да разбереш кога си го ресетнал не разбрах. относно програмата,
Код:
     CLRF         CHASTNO
ET1  INCF         CHASTNO,  1
     MOVF         DELIMO,  0 
     SUBLW        0x64    ;TOVA E 100       
     BTFSC        STATUS,   C
     GOTO         ET1
     DECF         CHASTNO,    1
     MOVLW        0x64
     ADDWF        DELIMO,   1

После повтаряш с 10 и след това в делимото получаваш единиците (след възтановяване). деленето винаги най-лесно става с последователно изваждане


Последна промяна didofen на Вто Сеп 14, 2010 4:32 pm, променена общо 8 пъти



Вто Сеп 14, 2010 11:44 am
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение 
сори, ама таз табулация нещо не ще :(
. съдба


Вто Сеп 14, 2010 12:41 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 126 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5, 6 ... 9  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни