Forum: Mikrocontroller und Digitale Elektronik Webserver von Simon Küppers mit ATmega328


von Nick (Gast)


Lesenswert?

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.

von TSE (Gast)


Lesenswert?

Hallo,
Der Code und die Fehler würden uns weiterhelfen

von Nick (Gast)


Lesenswert?

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.

von Gast (Gast)


Lesenswert?

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??

von Gast (Gast)


Lesenswert?

ob Eclipse oder AVR-Studio ist dabei vollkommen egal....

von Vlad T. (vlad_tepesch)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

gehts noch umständlicher?
die defines sind doch vorgegeben....man muss beim coden nur eben statt 
PB3, PINB3 schreiben.....

von Gast (Gast)


Lesenswert?

und um in einem vorgegebenen Code PB3 gegen PINB3 und evtl. weitere 
auszutauschen, dafür gibt es die Such- und Ersetz-Funtion....

von Nick (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.