- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- ldave: New Game Blitz - 2025
- vrob: Az utolsó DOS játékok 1996 - 1997-ben, egy korszak lezárul
- Ndruu: Segíts kereshetővé tenni a PH-s arcképeket!
- Elektromos rásegítésű kerékpárok
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Új hozzászólás Aktív témák
-
zka67
őstag
Szia, jobban megnézve a kódodat, én úgy látom, hogy csak 8 bitet olvasol ki a 12-ből.
-
zka67
őstag
Szia, itt az általam használt modul. A gpio.h-t cseréld le a PIC io moduljára, és a gpio funkciókat is írd át a megfelelőkre, értelemszerűen (Ez a program a 2.5-ös portot használja, természetesen ez szabadon választható). A temp_delay értékeket át kell számolnod, hogy a megfelelő időzítéseket megkapd.
Először olvasd ki az értket a chip-ből a temp_get()-tel, utána indítsd el a következő konverziót a temp_start_conv()-val, és a következő kiolvasásig várj 1mp-et. A program az alapértelmezett felbontást használja (12 bit), a konverzió ideje 750ms. Ezalatt csinálhatsz mást, sűrűbben kiolvasni nincs értelme és egyébként is hibás adatot kapnál.
Remélem így már boldogulni fogsz
#include "core/gpio/gpio.h"
void temp_delay(int delay) {
do { ; } while(--delay);
}
void DQ_LOW(void) {
gpioSetDir(2, 5, gpioDirection_Output);
gpioSetValue(2, 5, 0);
}
void DQ_HIGH(void) {
gpioSetValue(2, 5, 1);
gpioSetDir(2, 5, gpioDirection_Input);
}
uint32_t DQ(void) {
return gpioGetValue(2, 5);
}
void temp_reset(void) {
char presence = 1;
while (presence) {
DQ_LOW() ;
temp_delay(9055); // 503us
DQ_HIGH();
temp_delay(1260); // 70us
presence = DQ();
temp_delay(7740); // 430us
}
}
void temp_write_byte(uint8_t val) {
uint32_t i;
uint8_t temp;
for (i=8; i>0; i--) {
temp = val & 0x01;
DQ_LOW();
temp_delay(90); // 5us
if (temp) DQ_HIGH();
temp_delay(1134); // 63us
DQ_HIGH();
temp_delay(36); // 2us
val = val >> 1;
}
}
uint8_t temp_read_byte(void) {
uint32_t i;
uint8_t value = 0;
for (i=8; i>0; i--) {
value >>= 1;
DQ_LOW();
temp_delay(108); // 6us
DQ_HIGH();
temp_delay(72); // 4us
if (DQ()) value |= 0x80;
temp_delay(1134); // 63us
}
return(value);
}
void temp_start_conv(void) {
DQ_HIGH();
temp_reset();
temp_write_byte(0XCC); // skip rom
temp_write_byte(0X44); // start conversion
}
uint32_t temp_get(void) {
uint32_t tlv, thv;
temp_reset();
temp_write_byte(0XCC); // skip rom
temp_write_byte(0XBE); // read scratchpad
tlv = temp_read_byte();
thv = temp_read_byte();
DQ_HIGH();
return tlv | (thv << 8);
} -
don_peter
senior tag
Igazából nem azért linkeltem, hogy úgy ahogy van másold és használd
A lényeg benne van csak észre kell vedd..Ha a gyártó által megadott időzítéseket használod, akkor mennie kell, max az lehet a gond, hogy a késleltető függvényed nem jó mert a PIC nincs jól beállítva, de ez már egy másik topik..
-
don_peter
senior tag
Ezek olyan függvények amelyek nincsenek benne a fórosban.
Gondolom egy külső fájlban írta meg és azt nem publikálta.
Használd ezt a forrást: [link]
Egyébként a DS1820-nak van adatlapja ott részletesen leírja miképpen kell vele kommunikálni.
Honnan szereztél ilyen szenzort?
Pont most akarok én is egy olyan projektet elkezdeni amihez ilyen szenzor fog kelleni.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Formula-1
- sziku69: Szólánc.
- Kerékpárosok, bringások ide!
- Elite: Dangerous
- RAM topik
- Elektromos autók - motorok
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Szünetmentes tápegységek (UPS)
- Kerti grill és bográcsozó házilag (BBQ, tervek, ötletek, receptek)
- További aktív témák...
- Siguro AC-C140W Cool 9 Mobil klíma, mobilklíma + ajándék
- Lenovo Ideapad3 Ryzen3-3250 MAGYAR Billentyű IPS FHD 12gb ram 256 ssd windows11
- PIROS Lenovo Ideapad Ryzen3-3250 IPS FHD 8gb ram 512gb ssd windows11
- Lenovo YOGA L13 Gen2 / Intel i7-1165G7 / 16gb ddr5 / 500gb ssd / FHD TOUCH / Ceruza / windows11
- Lenovo ThinkPad L390 / Intel Core i3 / 8gb ram / 256gb SSD / FHD lcd /Windows 11
- Újszerű Apple Macbook Air 15,3" M3 8C CPU/10C GPU/16GB/256GB-(MC9E4MG/A) Ezüst -3 év gari
- Akció! Sérült! Corsair Icue 5000X RGB Számítógépház! Olvass leírást!
- Bezámítás! Lenovo Legion 5 17ACH6H Gamer notebook - R7 5800H 16GB DDR4 512GB SSD RTX 3060 6GB WIN11
- Bomba ár! HP EliteBook 840 G4 - i5-7GEN I 16GB I 256GB SSD I 14" FHD Touch I Cam I W10 I Garancia!
- Konzol felvásárlás!! Xbox Series S, Xbox Serries X
Állásajánlatok
Cég: FOTC
Város: Budapest