Eigenartiges Verhalten beim Cypress uC CY7C68013A

Gast #387072
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

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.