Ds1820 ir ATmega8535 problema [iveikta ]

Ds1820 ir ATmega8535 problema [iveikta Laimingas]

Vat turiu problema Liūdnas niekaip negaliu prijungt to prakeikto permometro prie Atmegos. techn. Atmega8535 Kvarcas : 3… (koks parasytas ds1820.h faile) konderiai : 33Pf keramikiniai maitinimas +5V Šypsenalcd 16x1 kabo ant PORTC ds1820 kabo ant PORTB 4 pino. pull-up varza apie 5Kom softas: CodeVisionAVR niekaip neranda man to DS’o. LCD gaunu uzrasa [0 DS1820 rasta] pinus keist bandziau ir t.t. puoliau i panika Liūdnaspridedu kitoje zinuteje ds1820.h

/* Multipoint thermometer with LCD display using the Dallas Semiconductor DS1820/18S20 1 Wire bus temperature sensors CodeVisionAVR C Compiler (C) 2000-2002 HP InfoTech S.R.L. hpinfotech.ro Chip: AT90S8515 Memory Model: SMALL Data Stack Size: 128 bytes THE AT90S8515 CLOCK FREQUENCY MUST BE 3.6864 MHz The DS1820/18S20 sensors are connected to bit 6 of PORTA of the AT90S8515 as follows: [DS1820/18S20] [STK500 PORTA HEADER] 1 GND - 9 GND 2 DQ - 7 PA6 3 VDD - 10 +5V All the temperature sensors must be connected in parallel AN 4.7k PULLUP RESISTOR MUST BE CONNECTED BETWEEN DQ (PA6) AND +5V ! */ #asm .equ __w1_port=0x18 // PortB .equ __w1_bit=3 // PB4 pinas su 5K vara i +5V #endasm /* Use an 2x16 alphanumeric LCD connected to PORTC as follows: [LCD] [STK500 PORTC HEADER] 1 GND- 9 GND 2 +5V- 10 VCC 3 VLC- LCD contrast control voltage 0…1V 4 RS - 1 PC0 5 RD - 2 PC1 6 EN - 3 PC2 11 D4 - 5 PC4 12 D5 - 6 PC5 13 D6 - 7 PC6 14 D7 - 8 PC7 */ #asm .equ __lcd_port=0x15 // PortC #endasm #include <lcd.h> // LCD driver routines #include <mega8535.h> #include <ds1820.h> #include <delay.h> #include <math.h> #include <stdio.h> char lcd_buffer[33]; /* maximum number of DS1820/DS18S20 connected to the 1 Wire bus */ #define MAX_DEVICES 8 /* DS1820/DS18S20 devices ROM code storage area */ unsigned char rom_code[MAX_DEVICES,9]; main() { unsigned char i,j,devices; int temp; lcd_init(16); lcd_putsf(“CAVR
1 Wire” Mirkt; delay_ms(2000); lcd_clear(); /* detect how many DS1820/DS18S20 devices are connected to the 1 Wire bus */ devices=w1_search(0xF0,rom_code); sprintf(lcd_buffer,“%u DS1820
rasta”,devices); lcd_puts(lcd_buffer); delay_ms(2000); /* display the ROM codes for each device */ if (devices) { for (i=0;i<devices;i++) { sprintf(lcd_buffer,“#%u ROM
is:”,i+1); lcd_clear(); lcd_puts(lcd_buffer); delay_ms(2000); lcd_clear(); for (j=0;j<8;j++) { sprintf(lcd_buffer,"%02X ",rom_code[i,j]); lcd_puts(lcd_buffer); if (j==3) lcd_gotoxy(0,1); }; delay_ms(5000); }; } else while (1); /* stop here if no devices were found */ /* measure and display the temperature( s ) */ while (1) { for (i=0;i<devices; ) { temp=ds1820_temperature_10(&rom_code[i,0]); sprintf(lcd_buffer,“t%u=%i.%u\xdfC”,++i,temp/10,abs(temp%10) ); lcd_clear(); lcd_puts(lcd_buffer); delay_ms(800); }; }; }

Demo projektas is CVAVR ? Susitikrink pinus ar prie to pino prijungei ir ar teisingai pajungei DS1820 ( gal kojas ne nuo tos puses skaiciavai) . Pas mane kaip tik dabar guli ant stalo DS1820 ir rodo temperatura per LCD Cha cha. Darau šiokį tokį projektėlį. Tik konjtroleris ne AVR o Cypress PSoC CY8C27443

O tai kaip pas tave ATmega8535 o kode AT90S8515. Siūlau persidaryti is naujo. Pasileisk CodeWizard.

tai kox skirtumas kas ten parasyta komentaruose Šypsena as pakeiciau ten kur keichiasi cipas. visur nurodziau kad atmega8535. beje pinai visur tikrai tie. patikrinau 10k kartu Šypsena beje ds’a irgi prijungiau gerai ne kojom gi dirbu o desne ranka Šypsenanu bandysiu paleist is naujo bet kazkokia mistika Liūdnas

Vistiek kazka negerai darai Cha chaPasileisk CodeWizard ir susikur is naujo normalu projekta. MAIN nusikopijuok is pavyzdzio. turi veikti.

blyn neveikia Liūdnaszek gal tu gali ar turi sukompiliuota hex’a ir/arba xxx.c . pas mane lcd 16x1 kabo ant portC, cipas Atmega8535, ds1820 kabo ant portB belekurio pino. jei nesunku sukompilink kad veiktu. ta prasme kad temperatura rodytu ir vsio. nes mane jau uzkniso arba yra kazkokia durna klaida arba ds’as blogas. ps. gal turi CodeVisionAVR vaistu , nes pas mane ribotas dydis programos.

beje mano meilas [email protected]

Vaistu neturiu, jei demo versijos dydzio uzteks galiu pabandyti sukompilint ir pabandyt ant ATmega8. Bet ne anksciau savaitgalio. Pabandyk nuskaityti DS be paieskos. Kiek atsimenu reikes pasiusti skip_rom, convert_temperature ir read_scrachpad. Ai dar reset reikes. Paskaityk DS aprasyma.

nu kazka bandysiu burt. bet tik vakare. aciu. kokiu bus naujienu pranesiu.

va ir nieko nesigauna blyn Liūdnas Liūdnas Liūdnasto AVR_fan jei gali atsiusk koki veikianti hex’a su atmega8 lcd 1x16 ir ds1820. ir jei nesunku c koda dadek … xtalas pas mane yr 10 arba 3.6864

nu va radau laiko ir jegu Šypsena neveikiancima daiktui. Jei kam idomu tai esme buvo daznyje. Šypsena standartiskai uC buvo nurodytas naudoti vidinis 1MHz oscilatorius Šypsena taigi o kode nurodytas ~3.64. taigi DS1820 komunikuoti yra labai svarbu laikai (signalu ilgis). mano atveju buvo nurodytas 3,6MHZ kai istikruju buvo 1 taigi laikai buvo 3,6karto ilgesni. vat gal kam pravers jei kas neveiks isjunkit vidini oscilatoriu Laimingasps. aciu visiem padejusiems ir ziurejusiems Taip