Hirdetés
- Elektromos rásegítésű kerékpárok
- aquark: Flipper PC-n!
- Hieronymus: Hogyan parkolj hátramenetben profi módon
- Luck Dragon: Óraátállítás
- Luck Dragon: MárkaLánc
- GoodSpeed: Reklámmentesítés HyperOS-ben Xiaomi/POCO/Redmi
- gban: Ingyen kellene, de tegnapra
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Viber: ingyen telefonálás a mobilodon
- Geri Bátyó: Agglegénykonyha 14 – Kések, késélezés
Új hozzászólás Aktív témák
-
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
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 HASZNÁLT notebookot vegyek?
- Ismeretlen régiókba látogat a Bungie, teszteltük a Marathont
- PlayStation 5
- XPEnology
- Elektromos rásegítésű kerékpárok
- AMD Navi Radeon™ RX 9xxx sorozat
- Apple iPhone 13 - hízott, de jól áll neki!
- Crimson Desert
- Autós topik látogatók beszélgetős, offolós topikja
- Vezetékes FEJhallgatók
- További aktív témák...
- DDR3 PC ram, mennyiségi kedvezmény!
- HP EliteDesk 800 G2 SFF, i3-6100,8GB DDR4,256GB SSD, DVD, WIN11
- DDR3L laptop ram, mennyiségi kedvezmény!
- Hp EliteBook 835 G8 (AMD Ryzen 5 PRO 5650U 6 mag 12 szál, 13" FullHD) több darab akár 24.990Ft
- Bomba ár! Lenovo ThinkPad P15s G2 - i7-11G I 16GB I 512SSD I Nvidia 4GB I 4K I Cam I W11 I Gari!
- Új autó elsősegély doboz 2030 augusztusig jó
- 27% - ÚJ - XFX Radeon RX 9070 16GB GDDR6 Swift OC Videokártya! BeszámítOK
- Keresek Xbox Series S / Series X / Playstation 5 konzolokat
- Apple iPhone 13 Pro 128GB,Újszerű,Adatkabel,12 hónap garanciával
- HIBÁTLAN iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3732
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

