Forum: Mikrocontroller und Digitale Elektronik FIFO auslesen funktioniert nicht


von Tobias N. (tobi03)


Lesenswert?

Hallo!
Ich habe ein Problem mit dem FIFO. Ich benutze einen PIC18F2431, welcher 
einen 4x10-bit FIFO hat. Ich möchte allerdings nur 2 Werte 
hineinspeichern und auch diese 2 Werte auslesen. Hier ist mein 
Auslesecode:
Muss ich auch beim hineinspeichern darauf achten auf welchen Platz das 
gespeichert wird oder funktioniert das automatisch?
Mfg

  ADCON1bits.ADPNT1=0;
  ADCON1bits.ADPNT0=0;
Nop();

  rk=(ADRESH*256) + ADRESL;
  ADCON1bits.ADPNT1=0;
  ADCON1bits.ADPNT0=1;
Nop();

  lk=(ADRESH*256) + ADRESL;

von Tobias N. (tobi03)


Lesenswert?

Hat keiner eine Lösung?

von Wilhelm F. (Gast)


Lesenswert?

Tobias N. schrieb:

> Hat keiner eine Lösung?

Steht nicht im User Manual, wie es bedient wird?

von Tobias N. (tobi03)


Lesenswert?

ja steht theoretisch drinnen, aber ich hab es bereits 3 mal durchgelesen 
und finde den Fehler allerdings nichts. Aber vlt hat jemand erfahrung 
mit dem fifo?

: Bearbeitet durch User
von Wilhelm F. (Gast)


Lesenswert?

Tobias N. schrieb:
> ja steht theoretisch drinnen, aber ich hab es bereits 3 mal
> durchgelesen
> und finde den Fehler allerdings nichts. Aber vlt hat jemand erfahrung
> mit dem fifo?

Vermutlich verstehst du kein Englisch. Das muß man aber heutzutage.

von Karl H. (kbuchegg)


Lesenswert?

Das wär allerdings eine komische FIFO, wenn ich mich als Anwender dann 
auch noch selbst um die Details kümmern muss.
Der Sinn einer FIFO besteht doch darin, dass ich kurzfristig ein paar 
Daten 'parken' kann, und ich sie dann in der gleichen Reihenfolge wieder 
aus der FIFO kriege, wie ich sie reingestellt habe. WObei sich die FIFO 
um die Details selbst kümmert, wie zb wieviele Daten bereits in der FIFO 
sind und wo daher die nächsten zwischengelagert werden müssen.

von Peter C. (peter_c49)


Lesenswert?

Hallo Tobias,

du weisst aber schon das diese FIFOs im PIC nicht in beide richtungen 
gehen?
zb: der FIFO im uart, da schreibt das rx teil x-bytes rein, und das wird 
dann ausgelesen, von deinem code.
also meines wissens sind alle FIFOs in deinem PIC and irgendwein 
hardware modul gebunden, in eine richtung.

Ich denke du schreibst in den ADC FIFO, der ist nur zum lesen.

sollte aber alles klar zu sehen sein im DB, mal die Blockschaltbilder 
ansehen wo FIFOs drin sind.

ps: ich lass mich gerne belehren, aber keiner meiner PIC's, von 
PIC16,18,....32 hat FIFOs zur allgemeinen bidirectionalen benutzung.

mfG
Peter

von Tobias N. (tobi03)


Lesenswert?

Okay ich habe mich leider vertan. Mein ADC funktioniert fast 
einwandfrei. Das  Werte auslesen funktioniert auch und das FIFO arbeitet 
auch korrekt. Ich habe heute etwas ausprobiert: Ich habe ein 6 kHz 
Sägezahnsignal an beide Eingänge meinese µC geführt und mir ist 
aufgefallen, dass beim Auslesen den Variablen immer der selbe 
Unterschied zugewiesen wurde. Also in etwa eine Spannungsdifferenz von 
200mV entspricht ungefähr 75 µS zwischen den beiden Eingängen. Sprich 
sie werden nicht exakt gleichzeitig gesampelt. Bei niedriger Frequenz 
war dieser Unterschied logischerweise geringer. Eigentlich habe ich das 
gleichzeitige sampeln durch den Eintrag in dem Register ACMOD des ADCON0 
eingetragen. Ich brauche in meiner Anwendung ein exaktes Sampeln, da 2 
Audio-Signale verglichen werden. Weiß jemand Rat?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.