getadc() bringt manchmal falsches Ergebnis

  • 1
  • 2
  • 3
  • 4
  • Page 4 of 4
E-labUser555
 
Avatar
 
Subject:

Re: getadc() bringt manchmal falsches Ergebnis

 · 
Posted: 10.07.2010 - 19:16  ·  #25
Ok. Ich danke aber auf jeden Fall mal für die schnelle Antwort.

Viele Grüße,

E-LabUser
E-labUser555
 
Avatar
 
Subject:

Re: getadc() bringt manchmal falsches Ergebnis

 · 
Posted: 10.07.2010 - 19:46  ·  #26
Noch ein Nachtrag:

Mit der Variablen-Deklaration
tempadc[@_ADCBUFF]: word;
tempadc1[@_ADCBUFF+2]: word;
tempadc2[@_ADCBUFF+4]: word;

konnte ich die Kanäle separieren und die drei Variablen enthalten immer den Inhalt der drei ADC-Kanäle. Im Simulator wieder alles korrekt. In real Life nicht. Ich gebe jetzt erstmal auf und versuche es mit Assembler
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: getadc() bringt manchmal falsches Ergebnis

 · 
Posted: 10.07.2010 - 19:52  ·  #27
ich denke, rh gibt da auch noch eine Antwort.
_ADCBUFF ist jedenfalls am Ende des benutzen Ram Bereich.
Dahinter wäre noch Raum.
Auch _ADCBUFF+x ist im ASM zu finden!
Ich habe aber mit AVR-ASM zu wenig Erfahrung, um mich da
"mal eben schnell" im Listing zu orientieren.
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: getadc() bringt manchmal falsches Ergebnis

 · 
Posted: 12.07.2010 - 01:36  ·  #28
Hi again,

ich habe jetzt mal rh gefragt.

Quote
Mit der Variablen-Deklaration
tempadc[@_ADCBUFF]: word;
tempadc1[@_ADCBUFF+2]: word;
tempadc2[@_ADCBUFF+4]: word;
konnte ich die Kanäle separieren


rh: "das ist OK. GetADC macht nichts anderes".
Der Compiler merkt sich intern bis wohin das RAM schon belegt ist.
Deshalb muss in _ADCBUFF nur die Startadresse des Buffers gespeichert sein.

rh vermutet einen Stack/Frame Überlauf in der realen Hardware.
Zum Test einfach mal probieren und diese kräftig vergrößern!

Gruß
Gunter
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: getadc() bringt manchmal falsches Ergebnis

 · 
Posted: 12.07.2010 - 01:52  ·  #29
p.s.:
bitte auch mal die Demo "AVR ADCsampling" anschauen!
Sollte es an der Geschwindigkeit hängen, könnte das nützlich sein.

Gunter
E-labUser555
 
Avatar
 
Subject:

Re: getadc() bringt manchmal falsches Ergebnis

 · 
Posted: 12.07.2010 - 17:28  ·  #30
Hallo,

vielen Dank auf jeden Fall mal für die Hilfe. Das mit dem Stack habe ich auch langsam im Verdacht. Da scheint vielleicht irgendwo etwas zu überlappen. Sobald ich das Problem gelöst habe, poste ich die Lösung für die Nachwelt.

Viele Grüße,
E-labUser
  • 1
  • 2
  • 3
  • 4
  • Page 4 of 4
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   96   110 · Page-Gen-Time: 0.025881s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI