mikrocontroller.net

Forum: FPGA, VHDL & Co. Eigenartiges Verhalten beim Cypress uC CY7C68013A


Autor: Bustle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ihr,

ich werde einfach nicht schlau. Vielleicht könnt ihr mir weiterhelfen.

Ich habe beim Mikrocontroller CY7C68013A einen Endpoint 8 als IN
definiert und frage ihn als Interrupt ab.

Ich lasse mir vom Mikrocontroller immer was in den Buffer schreiben und
rufe diesen anschließen ab.

Hier der Code

...

TD_Poll(md_uebergabe_poll);
md_uebergabe_poll++;

if (md_uebergabe_poll == 0xFFFF)
{
  md_uebergabe_poll=0;
}

...

das mit dem hoch zählen aber ich zur Entschleundigung eingeführt, falls
es dies der Fehler wäre. Aber ohne Erfolg.

hier der Code für die Aufgerufene Funktion

...

if (md_ep8_auffuellen == 0xFFFE)
{
for (md_ep8_fifo_fuellen = 1; md_ep8_fifo_fuellen <= 127;
     md_ep8_fifo_fuellen++)
{
EP8FIFOBUF[md_ep8_fifo_fuellen] = md_ep8_fifo_fuellen;
}

SYNCDELAY;
EP8BCH = 0x00;
SYNCDELAY;
EP8BCL = 0xFF;
SYNCDELAY;
}

...

Und das kommt dabei raus, wenn ich den Endpoint 3mal abfrage...

Interrupt IN Transfer
Interrupt IN success.
Buffer Contents
0000  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0010  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0020  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0030  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0040  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0050  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0060  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0070  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0080  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0090  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00A0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00B0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00C0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00D0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00E0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00F0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E
Interrupt IN Transfer
Interrupt IN success.
Buffer Contents
0000  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0010  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0020  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0030  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0040  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0050  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0060  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0070  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0080  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0090  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00A0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00B0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00C0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00D0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00E0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00F0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10
Interrupt IN Transfer
Interrupt IN success.
Buffer Contents
0000  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0010  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0020  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0030  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0040  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0050  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0060  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0070  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0080  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0090  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00A0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00B0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00C0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00D0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00E0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00F0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E

_____________________________________________________________

bei der nächsten Abfrage würden wieder die 10 20 10 20 usw. kommen,
dann wieder 7E und 7F usw.

Komisch ist das die 7E und 7F die letzten Werte sind die in den Buffer
geschrieben werden. Wenn ich andere längen nehme und andere Zahlen
eintragen, werden trotzdem die letzten beiden in den Buffer geschrieben
Werte ausgegeben.

Ich hoffe mir kann jemand irgendwelche Tipps geben, die mir weiter
helfen.

Vielen Dank

Gruß
Bustle

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.