dotaz na ds18b20

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
filuta

dotaz na ds18b20

#1 Příspěvek 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.
Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 00:00
Bydliště: Bratislava

#2 Příspěvek 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
Ako elektrikár sa cítim slobodne.
Môžem hovoriť do vedenia!
filuta

#3 Příspěvek 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)
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 00:00
Bydliště: Vysočina

#4 Příspěvek 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:
filuta

#5 Příspěvek 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í?
Přílohy
teplomerds_FF.asm
(24.26 KiB) Staženo 248 x
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 00:00
Bydliště: Vysočina

#6 Příspěvek 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.
filuta

#7 Příspěvek 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
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 00:00
Bydliště: Vysočina

#8 Příspěvek od Chenzee »

Ještě mě napadlo, zda máš krystal na 4MHz?
filuta1

#9 Příspěvek 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.
filuta

#10 Příspěvek 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
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 00:00
Bydliště: Vysočina

#11 Příspěvek 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
filuta

#12 Příspěvek 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
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“