Hallo, ich hab für ein Projekt mal den Webserver von Simon Küppers nachgebaut und statt dem ATmega168 den 328 genutzt. Jetzt bin ich am Code schreiben und komme langsam an die 16KB Grenze. Also wollte ich im AVR Studio die Mikrocontrollertyp für die Kompilierung vom 168 auf 328 umstellen. Hab ich auch gemacht, nur leider kriege ich jetzt beim Kompilieren die schönsten Fehlermeldungen angezeigt. Deshalb wollte ich fragen, ob mir jemand bei der Portierung helfen kann, da ich davon kaum Ahnung hab. Noch besser wäre natürlich, wenn jemand schon den portierten Code hätte. Im Thread zu dem Webserver habe ich schon mal nachgelesen, da schrieb jemand, dass man nur ein paar defines Umschreiben müsste. Welche wären das? Vielen Dank im Voraus.
Hallo, Der Code und die Fehler würden uns weiterhelfen
Oh... entschuldigung.
1 | rm -rf Enc28j60.o Spi.o HttpD.o uip.o uip_arp.o uip_TcpAppHub.o uip_UdpAppHub.o Main.o Gpio.o uWebSrv.elf dep/* uWebSrv.hex uWebSrv.eep uWebSrv.lss uWebSrv.map |
2 | Build succeeded with 0 Warnings... |
3 | ../Hardware/Enc28j60.c: In function 'Enc28j60ReadReg': |
4 | ../Hardware/Enc28j60.c:310: error: 'PB2' undeclared (first use in this function) |
5 | ../Hardware/Enc28j60.c:310: error: (Each undeclared identifier is reported only once |
6 | ../Hardware/Enc28j60.c:310: error: for each function it appears in.) |
7 | ../Hardware/Enc28j60.c: In function 'Enc28j60WriteReg': |
8 | ../Hardware/Enc28j60.c:325: error: 'PB2' undeclared (first use in this function) |
9 | ../Hardware/Enc28j60.c: In function 'Enc28j60SetMaskReg': |
10 | ../Hardware/Enc28j60.c:336: error: 'PB2' undeclared (first use in this function) |
11 | ../Hardware/Enc28j60.c: In function 'Enc28j60ClearMaskReg': |
12 | ../Hardware/Enc28j60.c:347: error: 'PB2' undeclared (first use in this function) |
13 | ../Hardware/Enc28j60.c: In function 'Enc28j60Reset': |
14 | ../Hardware/Enc28j60.c:403: error: 'PB2' undeclared (first use in this function) |
15 | ../Hardware/Enc28j60.c: In function 'Enc28j60Init': |
16 | ../Hardware/Enc28j60.c:425: error: 'PB3' undeclared (first use in this function) |
17 | ../Hardware/Enc28j60.c:425: error: 'PB2' undeclared (first use in this function) |
18 | ../Hardware/Enc28j60.c:425: error: 'PB5' undeclared (first use in this function) |
19 | ../Hardware/Enc28j60.c:426: error: 'PB1' undeclared (first use in this function) |
20 | ../Hardware/Enc28j60.c:426: error: 'PB4' undeclared (first use in this function) |
21 | ../Hardware/Enc28j60.c: In function 'Enc28j60Receive': |
22 | ../Hardware/Enc28j60.c:512: error: 'PB2' undeclared (first use in this function) |
23 | ../Hardware/Enc28j60.c: In function 'Enc28j60CopyPacket': |
24 | ../Hardware/Enc28j60.c:580: error: 'PB2' undeclared (first use in this function) |
25 | ../Hardware/Enc28j60.c: In function 'Enc28j60CopyChecksum': |
26 | ../Hardware/Enc28j60.c:643: error: 'PB2' undeclared (first use in this function) |
27 | make: *** [Enc28j60.o] Error 1 |
28 | Build failed with 15 errors and 0 warnings... |
Den Code gibts hier: http://klinkerstein.m-faq.de/Downloads/MicroWebServer/Sources.zip Vielleicht stell ich mich auch blöd an, aber einen Tip worans liegen könnte würde mir sehr weiterhelfen.
wer lesen kann ist klar im Vorteil....... Original-Text aus dem Thread von Simon: > bei Verwendung des 328P und Eclipse müssen die Pin-Defines geändert > werden. z.B. PB3 in PINB3 und jetzt deine Fehlerausgabe: > error: 'PB2' undeclared (first use in this function) fällt dir was auf??
Ianstatt das überall auszutauschen, würd ich nen kompatibilitätsheader anlegen und da die fehlenden einfach definiere. Abgesehen davon war es noch nie clever im Code überall die direkten Pin-Defines zu benutzen. Normalerweise sollte man sich für jeden Pin ein extradefine anlegen, dann fällt es später leichter, wenn man doch mal eine komponente an einen anderen Pin hängt. Bsp: #define PINLED1 PINB4
gehts noch umständlicher? die defines sind doch vorgegeben....man muss beim coden nur eben statt PB3, PINB3 schreiben.....
und um in einem vorgegebenen Code PB3 gegen PINB3 und evtl. weitere auszutauschen, dafür gibt es die Such- und Ersetz-Funtion....
okay, dann muss ich den Hinweis überlesen haben... Vielen Dank nochmal.
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.