mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS2760 Teilausfall ?


Autor: Sebastian Arnd (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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"
int main( void )
{
  uchar id[8], diff,s[8];
  uint y=0 ,x=0 ;
  uchar *d="D",*c="C";
  sei();
  init_timer();
  lcd_init(LCD_DISP_ON);
  lcd_puts_nl( "1-Wire-Reader:" );
  second =0;

diff = w1_rom_search( diff, id );    // sucht nach einem ic auf dem 1wire
bus 
       sprintf( s, "%02X ", id[0] );    // scheibt einen teil der id in
hex um
  lcd_puts( s );        // gibt s aus 
  for(;;){          // main loop
  if(second == 1) {
  
  w1_reset();        // resettet den bus
  w1_byte_wr(0xCC);      // Schreibt das Skip Rom kommando
  w1_byte_wr(0x69);      // Schreibt das lese kommando
  w1_byte_wr(0x18);      // Scheibt das zu lesende register
  x=w1_byte_rd();        // Liest msb
  y=w1_byte_rd();        // Liest lsb
  lcd_putc( 0x7B );
  sprintf(d,"%02X",x);
  lcd_puts( d );
  lcd_puts( ":" );
  sprintf(c,"%02X",y);
  lcd_puts( c );
  lcd_putc( 0x7D );
   }
        second = 0;
    }
}

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

Autor: Seppal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

zeigen deine Pointer c und d in Zeile 5 nicht auf eine blödsinnige
Adresse?
Probier doch mal

uchar c;
....
sprintf(&c, "%02x", y);
lcd_puts(&c);

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm? Wasn quatsch.
Das erste stimmt ja noch. Du tust an die Adresse von uchar c einen
wert. Aber diesen kannst du doch nicht mit puts ausgeben... da gibt der
ja soweit einen String aus, bis zufällig ne 0 im Speicher steht...

Autor: Seppal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, lcd_putc(c) statt lcd_puts(&c)

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uchar c;
....
sprintf(&c, "%02x", y);

Bist du sicher das in einen char 3 Byte reinpassen? Böser Fehler! :-)

Autor: Seppal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wär doch einen Versuch Wert ;)

Bevor ich mich in die Ecke stelle ein letzter Versuch:
Zeile 5: uchar c[3], d[4];

Autor: Sebastian Arnd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Danke für eure Bemühungen.Aber die Software funktioniert ja soweit dass
ich werte empfangen und Scheiben kann, was nicht funktioniert ist das
auslesen der Register die die Werte des ADC´s beinhalten sollten.
Was ich vergessen hatte mein MCU ist ein atmega8 mit 8MHz Quarz.

Gruß Sebastian

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.