Stránka 1 z 1

dotaz na ds18b20

Napsal: 15 črc 2008, 20:52
od filuta
Mám dotaz na teplotní čidlo ds 18b20 a to následující, měřím teplotu s tímto čidlem s pomocí PIC 16F630.Pro snížení spotřeby měřím teplotu jednou za minutu, použil jsem na to příkaz sleep a v druhém případě i časovou smyčku ,ale problém je stejný a to takový že když čidlo zahřívám rukou tak teplota roste, potom je ta minutová pauza po niž by teplota měla už klesnout ale ona ještě vzroste a začne klesat až po dalším minutovém intervalu. Prosím nevíte co s tím?Ze začátku jsem si myslel že je to tím probuzením než se procesor znovu rozjede, ale dneska jsem použil jenom minutovou časovou smyčku a dělá to taky, Použil jsem program teplomerds.asm z diskuze http://www.ebastlirna.cz/modules.php?na ... ight=18b20.

Napsal: 15 črc 2008, 21:50
od ViPali
Nechce sa mi kontrolovať *.asm, ale ak dobre rozumiem, tak by malo byť:
meraj, zobraz, čakaj(1min),

skontroluj, či nie je:
meraj, čakaj(1min), zobraz

Napsal: 16 črc 2008, 05:45
od filuta
já jsem to asi špatně napsal když dám ruku pryč tak teplota by po minutě měla jít dolů ale ona ještě jde nahoru a po další minutě jde teprve dolů.
Mělo by to být: měř, zobraz, čekej(1min),...... měř, zobraz, čekej(1min)

Napsal: 16 črc 2008, 07:36
od Chenzee
Myslím, že je problém ve sledu akcí tak, jak píše VIPALI. Musí se zadat převod teploty, počkat čas potřebný pro převod a nově převedenou hodnotu teprve načíst a zobrazit. Taky mě to připadá, že máš: načíst teplotu, zobrazit a pak teprve převést. Zkontroluj posloupnost příkazů. Kdyžtak sem dej přímo ten *.asm. Jukneme na to :wink:

Napsal: 16 črc 2008, 13:25
od filuta
posílám ten .ASM soubor opravdu nevím kde muže být chyba pořát na to koukám a tak prosím o jakékoli nakopnutí?

Napsal: 17 črc 2008, 08:40
od Chenzee
Ahoj, tak jsem našel dvě věci. Jednak na řádku cca 424 je skok na neexistující návěstí (goto DS_KOM_1) a jednak máš špatně nastavené config word. Místo tvého 0x3FA1= VYPNUTÝ WATCHDOG musíš mít 3FA9 = zapnutý WATCHDOG. Jinak by to mohlo fungovat.

Napsal: 17 črc 2008, 19:33
od filuta
děkuji za radu ale nepomohlo to udělal jsem to tak ,že mezera mezi měřením je jenom než přeteče watchdog (asi 2,3 S) a už to neřeším chci se už věnovat dalším konstrukcím

Napsal: 18 črc 2008, 06:45
od Chenzee
Ještě mě napadlo, zda máš krystal na 4MHz?

Napsal: 18 črc 2008, 08:24
od filuta1
mám interní oscilátor 4Mhz i kalibrační konstantu, zajímavé je že používám jenom jedenkrát přetečení WATCHDOGU což je s předděličkou tech 2,3S a funguje to ale když dám ještě smyčku aby čidlo měřilo každých 23S tak už to nejde! Nevadí přišly mi tlakové čidla od freescale tak zkusím udělat barometr (A/D převodník jsem ještě nezkoušel)s dvouřádkovým displejem pořád jsem ještě začátečník.

Napsal: 18 črc 2008, 09:02
od filuta
neříkám že mě to neštve, ale do budoucna bych chtěl dát měření teploty, tlaku ,vlhkosti do jednoho zařízení s dvouřádkovým displejem taková malá meteostanice takže to doladím až pak , program bude stejně jiný. Ještě jednou děkuji za odpovědi

Napsal: 18 črc 2008, 13:06
od Chenzee
Nebudu tedy do toho rýpat, ale něco mi tu nehraje. Config slovo je na externí krystal XT, takže by to asi fungovat nemělo (pokud ho nepřepíšeš v porgamátoru). jo a ještě se doporučuje po SLEEP dát jako první NOP instrukci ... tak čau

Napsal: 18 črc 2008, 15:47
od filuta
konfigurační slovo je na INTERNI OSC, nahraju program do programu WIN PIC a vidím konfigurační slovo 3F9C nic už v prográmátoru nenastavuju ta poznámka (__CONFIG 0x3FA1)na řádku 69 je špatně asi to vzniklo tím že jsem zkopíroval program a pak upravoval a nepřepsal poznámky. Instrukce nop jsem taky zkoušel a nepomuže to