mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Subtraktion funktioniert scheinbar nicht


Autor: Snobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich benötige Eure Hilfe. Was mache ich falsch?

Controller: Atmega8
Compiler: Studio 4


Folgende Variablen sind deklariert:

  uint16_t buffer[6][15] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0}};

  int32_t diff1=0;


im späteren Verlauf wird folgendes gemacht:

In einer Schleife wird der Variablen diff1 die Differenz zweier 
Array-Elemente übergeben:

    diff1=((buffer[i][0])-(buffer[i][13]));

Möchte ich nun mit dem Ergebnis "diff1" was auch immer machen (z.B. über 
RS-232 den Wert zum Debuggen ausgeben), bleibt mein Controller scheinbar 
stehen (zumindest wird bei nichts mehr ausgegeben und der Controller 
reagiert nicht mehr).

Über Infos zum Fehler bin ich euch sehr dankbar!

Viele Grüße

Snobi

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int32_t diff1 = (int32_t)buffer[i][0] - (int32_t)buffer[i][13];

Achte darauf, dass i innerhalb 0..5 bleibt!

Autor: Snobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan B.,

besten Dank für Deine Antwort und den Hinweisen. Es war tatsächlich das 
[i] das einen Überlauf verursachte. Meist sind es die kleinen Dinge die 
alles schwierig erscheinen lassen.

Nochmals vielen Dank!

Gruß
Snobi

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.