Hallo
Kann es sein dass nur ein teil eines ICs ausfällt ? Mir geht es um
einen ds2760 der bis auf den adc normal zu funktionieren scheint d.h
ich kann die Serinen Nummer und das Protection Register auslesen aber
bei bei den ganzen Registern wie Temperatur und Spannung bekomme ich
immer nur 00 raus. Die Software ist zum Großteil die von Peter
Dannegger. Von mir wurde nur die Datei main.c verändert:
#include "main.h"
1 | int main( void )
|
2 | {
|
3 | uchar id[8], diff,s[8];
|
4 | uint y=0 ,x=0 ;
|
5 | uchar *d="D",*c="C";
|
6 | sei();
|
7 | init_timer();
|
8 | lcd_init(LCD_DISP_ON);
|
9 | lcd_puts_nl( "1-Wire-Reader:" );
|
10 | second =0;
|
11 |
|
12 | diff = w1_rom_search( diff, id ); // sucht nach einem ic auf dem 1wire
|
13 | bus
|
14 | sprintf( s, "%02X ", id[0] ); // scheibt einen teil der id in
|
15 | hex um
|
16 | lcd_puts( s ); // gibt s aus
|
17 | for(;;){ // main loop
|
18 | if(second == 1) {
|
19 |
|
20 | w1_reset(); // resettet den bus
|
21 | w1_byte_wr(0xCC); // Schreibt das Skip Rom kommando
|
22 | w1_byte_wr(0x69); // Schreibt das lese kommando
|
23 | w1_byte_wr(0x18); // Scheibt das zu lesende register
|
24 | x=w1_byte_rd(); // Liest msb
|
25 | y=w1_byte_rd(); // Liest lsb
|
26 | lcd_putc( 0x7B );
|
27 | sprintf(d,"%02X",x);
|
28 | lcd_puts( d );
|
29 | lcd_puts( ":" );
|
30 | sprintf(c,"%02X",y);
|
31 | lcd_puts( c );
|
32 | lcd_putc( 0x7D );
|
33 | }
|
34 | second = 0;
|
35 | }
|
36 | }
|
aber ich glaube kaum noch an einen Software fehler ist.Im Anhang
nochmal ist die ganze Software. Was ich mir vorstellen könnte ist dass
ich den adc zerstört habe indem ich den VIN Pin einmal ohne
Vorwiderstand angeschlossen habe.
Gruß Sebastian