Niedawno pisalem o czujniku temp max6662 na spi nie udalo mi sie go uruchomic. Wiec przezucilem sie na ds18b20, mam jednak z nim problemy. Czy ktos z grupowiczow posiada kod do obslugi tegoz czujnika ? Bo juz nie wiem co nie dziala. Problowalem kodu z noty aplikacyjnej dallasa ale nie dziala mi...
kwarc 11.0592 podciaganie DQ 4.7k DQ mam na pinie 1.2 czujnik zasilany "normalnie" kompilator keil...
nie mam nawet mozliwosci czy odpowiada na reset
btw: czy mozna zbadac co dzieje sie na lini czyms takim jak winscope (na karcie muzycznej) ?
Typuje na zla procedurke delay, bo reszta jest dokladnie tak jak w kilku przykladach (tego tez probowalem) i notach ktore znalazlem. Udalo mi sie odpalic czujnik pod bascomem wiec wiem na pewno ze dziala.
Jesli dobrze licze na kwarcu 11.0592Mhz i at89s8252: 11059200/12 mamy 921600 cykli/s wiec nop "trwa" ~0.9us tak ?
wiec na podstawie tych obliczen zrobilem sobie tak:
razem 5 wywolanie + 2 na petle i to mi jakos nie dziala. Po paru eksperymentach udalo mi sie osiagnac tyle ze odczytuje kilka losowych wartosci w kolko. Probowalem oczywiscie zmienic argumenty delay tak aby funkcja trwala przez odpowiedni czas z zalozeniem ze cykl trwa 0.9us.
nowa prosba: prosze o procedure delay (najlepiej w asmie) !
void read_temp(void) { int temp; unsigned char i = 0; unsigned char x;
/* tutaj normalnie wylapuje co wyszlo z reset pulse wiec wyglada na to ze jest ok, bo zwraca 0, teraz wyciolem ten fragment zeby nie zajmowac miejsca */
ow_reset(); write_byte(0xCC); // Skip ROM write_byte(0x44); // Start Conversion
delay_ms(800);
ow_reset(); write_byte(0xCC); // Skip ROM write_byte(0xBE); // Read Scratch Pad
// odczytaj 2bajty z scratchpad do { if (read_bit()) { temp |= (1 << i); }
} while (++i < 16);
ow_reset();
lcd_clrs(); printf("%X", (int) temp);
// konwersja i = (temp & 0x0F); if (temp < 0) { i |= 0xF0; }
i = (i * 10) / 16; temp = (((temp / 16) * 10) + i);
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.