www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik enc28j60 versendet Daten nur teilweise


Autor: David B. (dave10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe auf meine µC eine webseite laufen. Bei dieser wird die 
Startseite (index.html) korrekt im Browser geladen, danach sollte sich 
ein Bild laden lassen, welches jedoch nicht vom Browser erhalten wird. 
Im Programm sieht der TCP/IP Stack gut aus (im Debugger stehen die 
richtigen Daten des TCP/IP Puffers). Jedoch bekomme ich die Daten im 
Browser nicht:
Hier meine senderoutine:
void enc28j60PacketSend(unsigned int len, unsigned char* packet) {
  //Check if space is availible ( Check if TXRTS is cleared )
  uint8_t timeout = 100;
  while((enc28j60Read(ECON1) & ECON1_TXRTS) && --timeout > 0){
    delay_ms(1);
  }
  
  // reset tx logic if TXRTS bit is still on
  if(timeout==0){
    //Errata #12 workarround, Reset transmit logic
    enc28j60WriteOp(ENC28J60_BIT_FIELD_SET, ECON1, ECON1_TXRST);
    enc28j60WriteOp(ENC28J60_BIT_FIELD_CLR, ECON1, ECON1_TXRST);
  }
  
  // Set the write pointer to start of transmit buffer area
  enc28j60Write(EWRPTL, TXSTART_INIT&0xFF);
  enc28j60Write(EWRPTH, TXSTART_INIT>>8);
  // Set the TXND pointer to correspond to the packet size given
  enc28j60Write(ETXNDL, (TXSTART_INIT+len)&0xFF);
  enc28j60Write(ETXNDH, (TXSTART_INIT+len)>>8);

  // write per-packet control byte
  enc28j60WriteOp(ENC28J60_WRITE_BUF_MEM, 0, 0x00);

  // copy the packet into the transmit buffer
  enc28j60WriteBuffer(len, packet);
  
  //clear TXIF
  enc28j60WriteOp(ENC28J60_BIT_FIELD_CLR, EIR, EIR_TXIF);
  
  // send the contents of the transmit buffer onto the network
  enc28j60WriteOp(ENC28J60_BIT_FIELD_SET, ECON1, ECON1_TXRTS);
}

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]
  • [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.