Datum: 02.07.2008 10:22
Hallo, habe einen Vektor unsigned char time_buffer[18]; wenn ich ihn mit while (j<12) time_buffer[j++]=1; initialisieren will, stehen anschliessend falsche Werte drin (also keine 1en). Hingegen time_buffer[0]=1; time_buffer[1]=1; time_buffer[2]=1; time_buffer[3]=1; time_buffer[4]=1; time_buffer[5]=1; time_buffer[6]=1; time_buffer[7]=1; time_buffer[8]=1; time_buffer[9]=1; time_buffer[10]=1; time_buffer[11]=1; funktioniert einwandfrei. Weiss jemand, was da los sein kann? Danke Hans
Datum: 02.07.2008 10:26
Ich würde vor der Schleife
j=0; |
schreiben. Der Rest sieht i. O. aus.
Datum: 02.07.2008 10:36
Habe ich schon. j ist deklariert als unsigned char j=0;
Datum: 02.07.2008 10:41
Du kannst ihn auch einfacher initialisieren. memset(time_buffer,1,sizeof(time_buffer)) oder memset(time_buffer,1,12); Gruss Helmi
Datum: 02.07.2008 10:50
Dann poste mal ein komplettes Beispiel und nicht nur ein paar Code-Bröckchen. Und tippe es nicht per Hand "aus dem Gedächtnis" ein, sondern füge den Code per Cut&Paste ein, oder poste gleich die ganze Datei als Anhang.
Datum: 02.07.2008 10:53
ich habe die Lösung gefunden. Wenn ich unsigned char time_buffer[18]; global anlege und nicht in der main, geht alles wie es soll.
Datum: 02.07.2008 11:58
HansDampf wrote:
> ich habe die Lösung gefunden.
Nein, hast du nicht. Solange du nicht weißt, warum das von dir
beobachtete Verhalten auftritt, doktorst du nur an den Symptomen
herum.
Vermutlich wird bei der lokalen Variablen der Optimizer feststellen,
dass du die initialisierten Werte gar nicht benutzt und das dann
gleich alles sein lassen, aber dann wäre es unlogisch, warum er es
in der Schleife wegoptimiert, bei entrollter Schleife jedoch nicht.
Datum: 02.07.2008 13:49
>Solange du nicht weißt, warum das von dir >beobachtete Verhalten auftritt, doktorst >du nur an den Symptomen herum. Das stimmt schon. Aber woran kann das liegen? Ich weise in main dem Vektor Werte zu, die ich für einen Funktionsaufruf (ausserhalb main natürlich) benutze. Ich dachte mir schon, dass der Compiler vermutlich was wegoptimiert. Aber warum macht er das?
Datum: 02.07.2008 13:57
> Ich weise in main dem Vektor Werte zu, die ich für einen > Funktionsaufruf (ausserhalb main natürlich) benutze. Da wir weder sehen können, wo der "Vektor" deklariert ist, noch, wie die Funktion aufgerufen wird, geschweige denn, wie die Funktion auf den "Vektor" zugreift, kann ich hier nur Stefan zitieren: Beitrag "seltsames Verhalten eines Vektors" Poste KOMPLETTEN Quellcode, keine zusammenhanglosen Schnipsel!
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel


