Hallo zusammen, ich habe mir mit einem Mega32 und einem ENC28J60 ein Testboard gebastelt. Der Uart, der Timer und der ENC Init Funktionieren prima bis ich im Makefie die uip Files einbinde. Die werden gar nicht aufgerufen aber der AVR schweigt trotzdem. Hier die Main: #include "main.h" int main(void) { u32 timer_value, periodic_timer_value; u16 nCounter; nCounter= 0 ; UART_Init(); UartPrintF ("Willkommen beim Ethernet Testboard von MadDax\r\n"); for(u32 a=0;a<1000000;a++); for(u32 a=0;a<1000000;a++); enc28j60Init(); enc28j60PhyWrite(0x14,0x0AA0); //0420 0AA0 //LED_A und LED_B blinkend timer_value = SetDelay10ms(200); periodic_timer_value = SetDelay10ms(2); init_timer(); sei(); while (1) { if(CheckDelay10ms(timer_value)) { timer_value = SetDelay10ms(200); UartPrintF ("Counter Dez:%6d\r\n", nCounter); nCounter++; } } return (0); } und der Ausschnitt aus dem Makefile der mir alles zerbröselt: # List C source files here. (C dependencies are automatically generated.) SRC = main.c uart.c clock-arch.c enc28j60.c SRC += uip.c uip_arp.c uiplib.c psock.c hello-world.c #SRC += timer.c uip-neighbor.c #SRC += httpd.c http-strings.c httpd-cgi.c httpd-fs.c kennt dieses Phänomen jemand?
Nur ein blöder Verdacht: Schau mal nach, ob in hello-world.c eine weitere main() drin ist, die statt deiner main() aus main.c aufgerufen wird.
Hallo, es ist keine weitere main.c in den aufgeführten c-Dateien zu finden. Das Makefile ist das original von WinAVR mitgelieferte ohne weitere Änderungen. Der GCC ist der Stand von letzter Woche. Ich weiß auch nicht weiter. mfg dxm
Ich meinte keine weitere main.c sondern eine Definition einer zweiten main()-Funktion. Ansonsten zeige wenigstens das komplette makefile.
Hallo nochmal, hier habe ich das Makefile zur Begutachtung. Ich habe es mit einigen anderen aus der Codesammlung verglichen und finde keinen Fehler. Vielleicht hilft ja das Vier-Augen-Prinzip. Danke im Vorraus dxm
Das Makefile ist OK. Was funktioniert konkret nicht? Wenn es alles innerhalb der while(1) Schleife ist, checke mal, ob UIP den Timervektor statisch auf eigene Routinen verbiegt und deine Routinen nicht mehr drankommen.
Hallo, die Vermutung mit dem Timer habe ich gecheckt und nichts gefunden. Außerdem muß der Fehler schon vor der while(1) Schleife liegen da der Uart und ENC Init schon nicht funktioniert. Ich biege jetzt mal eine Funktionierende Applikation des uip von Beitrag "Webserver zur Temperaturmessung" auf meine Hardware zurecht. Wird hoffentlich funktionieren? Danke dxm
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.