mikrocontroller.net

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


Autor: Nick (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TSE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Der Code und die Fehler würden uns weiterhelfen

Autor: Nick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh... entschuldigung.
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
Build succeeded with 0 Warnings...
../Hardware/Enc28j60.c: In function 'Enc28j60ReadReg':
../Hardware/Enc28j60.c:310: error: 'PB2' undeclared (first use in this function)
../Hardware/Enc28j60.c:310: error: (Each undeclared identifier is reported only once
../Hardware/Enc28j60.c:310: error: for each function it appears in.)
../Hardware/Enc28j60.c: In function 'Enc28j60WriteReg':
../Hardware/Enc28j60.c:325: error: 'PB2' undeclared (first use in this function)
../Hardware/Enc28j60.c: In function 'Enc28j60SetMaskReg':
../Hardware/Enc28j60.c:336: error: 'PB2' undeclared (first use in this function)
../Hardware/Enc28j60.c: In function 'Enc28j60ClearMaskReg':
../Hardware/Enc28j60.c:347: error: 'PB2' undeclared (first use in this function)
../Hardware/Enc28j60.c: In function 'Enc28j60Reset':
../Hardware/Enc28j60.c:403: error: 'PB2' undeclared (first use in this function)
../Hardware/Enc28j60.c: In function 'Enc28j60Init':
../Hardware/Enc28j60.c:425: error: 'PB3' undeclared (first use in this function)
../Hardware/Enc28j60.c:425: error: 'PB2' undeclared (first use in this function)
../Hardware/Enc28j60.c:425: error: 'PB5' undeclared (first use in this function)
../Hardware/Enc28j60.c:426: error: 'PB1' undeclared (first use in this function)
../Hardware/Enc28j60.c:426: error: 'PB4' undeclared (first use in this function)
../Hardware/Enc28j60.c: In function 'Enc28j60Receive':
../Hardware/Enc28j60.c:512: error: 'PB2' undeclared (first use in this function)
../Hardware/Enc28j60.c: In function 'Enc28j60CopyPacket':
../Hardware/Enc28j60.c:580: error: 'PB2' undeclared (first use in this function)
../Hardware/Enc28j60.c: In function 'Enc28j60CopyChecksum':
../Hardware/Enc28j60.c:643: error: 'PB2' undeclared (first use in this function)
make: *** [Enc28j60.o] Error 1
Build failed with 15 errors and 0 warnings...

Den Code gibts hier: 
http://klinkerstein.m-faq.de/Downloads/MicroWebSer...

Vielleicht stell ich mich auch blöd an, aber einen Tip worans liegen 
könnte würde mir sehr weiterhelfen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ob Eclipse oder AVR-Studio ist dabei vollkommen egal....

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

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

Autor: Gast (Gast)
Datum:

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

Autor: Nick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay, dann muss ich den Hinweis überlesen haben...

Vielen Dank nochmal.

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.