usb 2.0 mit control pannel

OP (Firma: gast) #968666
Lesenswert?

hallo zusammen,
kann jemand bitte mir sagen,wie kann ich daten in FIFOS direkt schreiben
und von dort wieder lesen mittels usb control pannel,
ich habe das folgende quell code  geschrieben aber hat nicht gecklappt.
   SYNCDELAY;
EP8FIFOBUF[ 0 ] = 0x02;
EP8FIFOBUF[ 1 ] = 0x06;
EP8FIFOBUF[ 2 ] = 0x07;
EP8FIFOBUF[ 3 ] = 0x03;
SYNCDELAY;
EP8BCH = 0x00;
SYNCDELAY;
EP8BCL = 0x04; // pass newly-sourced buffer on to host
      xFIFOBC_IN = ( ( EP6FIFOBCH << 8 ) + EP6FIFOBCL ); // get 
EP6FIFOBCH/L value

      if( xFIFOBC_IN < 0x0200 )         // if pkt is short,
      {
        INPKTEND = 0x06;                // force a commit to the hoste}
OP (Firma: gast) #968899
Lesenswert?

danke sehr für die hinweise ,aber leider das bringt nicht zu viel weil 
das habe ich schon gesehen,er benutzt die gpif designer,und ich wollte 
einfach die Fifos benutzen um die daten  zwichenzuspeicheren und an die 
host weiter schicken.umdie daten in fifos zu speicheren benutze ich ein 
port pin zum beispiel pa.0(daten kommen seriell,werden in fifo 
gespeichert un dann an die pc geschickt).

MfG
OP (Firma: gast) #968960
Lesenswert?

das ist richtig,aber ich wollte auf ein fifo zugreifen zum beispiel 
schreibe ich ein hex wert in einem endpoint und dann wollte ich diese 
wert an pc schicken,wo ich mittels control panel dise hex wert sehe.
das heisst ,ich benutze ein endpoint als IN transfer:in diese endpoint 
fifo schreibe ich diese hex wert.
kann mir jemand bitte sagen ob ich direkt dise wert schreiben kann oder 
muss ich erstmal ein endpoint für out transfer definiere und von dort 
die hex werte schicke .(das habe ich gemacht und hat funktionniert),aber 
ich wollte am endeffekt daten von draussen(adc)seriell kriege und in 
port pin zum beispiel pa.0 anschliesse und von dort die daten in ein 
endpointfifo(IN transfer)zwichenspeichere und weitereschicke zum pc.
dass heisst ich brauche kein kopierung von daten von ein endpoint in 
andere endpoint.
MfG
#969103
Lesenswert?

Du musst auf Manual-In schalten, und dann kannst du auch selbst (also 
die CPU) Pakete in den FIFO schreiben. Steht auf Seite 137 im Technical 
Reference Manual. Da stehen ja auch Beispiele dabei. Aber wieso willst 
du unbedingt die Slave FIFOs verwenden? Die sind eigentlich zum Betrieb 
mit einem externen Master (FPGA...) gedacht. Viel einfacher geht das 
über die Endpoint-Buffer, wie im BulkLoop Demo.
OP (Firma: gast) #979979
Lesenswert?

Guten abend,
kann man bitte mir sagen wo ich eine fehler gemacht habe?
ich habe folgendes quellcode jetzt verwendt um einige byte am pc zu 
schicken, aber ich bekomme falsche byte(nicht wie sie definiert)
und danke schön in voraus.
void TD_poll(void)
{
word x;
  if(!EP2468STAT &bmEPFULL))
    {
      for(k=0;k<8;k++)
       {
         aH[k]=1;
       }
      for(h=0;h<8;h++)
       {
        aL[h]=1;
       }
  APTR1H=&aH;
  APTR1L=&aL;
  AUTOPTRH2=MSB(&EP6FIFOBUF);
  AUTOPTRL2=MSB(&EP6FIFOBUF);
  for(x=0x0000;x<0x0200;x++)
  XAUTODATA2=XAUTODATA1;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren