Forum: Mikrocontroller und Digitale Elektronik PORT B LCD Atmega


von Hans (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,


ich möchte an einen Atmega 16 ein Display anschließen und ansteuern. Für 
das Display möchte die Dateien NokiaLCD.c und NokiaLCD.h verwenden.

Das Display ist an Port B angeschlossen.

Meine Fragen ist nun: Warum bekomme ich folgende Fehlermeldung?

Severity  Code  Description  Project  File  Line
Error    'PORTB' undeclared (first use in this function)  Atmega 16 
tea5767  C:\Users\Admin\Documents\Atmel Studio\7.0\Atmega 16 
tea5767\Atmega 16 tea5767\NokiaLCD.c  214

von Felix A. (madifaxle)


Lesenswert?

Hast du #include <avr/io.h> in deine Nokia...c eingefügt?

von Hans (Gast)


Lesenswert?

Nein muss ich das?


Danke für deine schnelle Antwort!!!

Ich werde es einfügen.

von Ingo L. (corrtexx)


Lesenswert?

Findest du nicht das WinAVR20090313 etwas alt ist?
IMHO fehlt tatsächlich die <avr/io.h> in der Datei...

Hans schrieb:
> Nein muss ich das?
Natürlich, woher soll der Präprozessor sonst wissen was PORTB ist?

von Karl H. (kbuchegg)


Lesenswert?

Hans schrieb:
> Nein muss ich das?

Ja, musst du.

Jedes C-File wird für sich selbst und unabhängig von allen anderen vom 
Compiler übersetzt.
Wenn du in deinem C-File ein #include machst, dann interessiert das den 
Compiler nicht die Bohne, wenn er sich nokia.c vornimmt.

von Hans (Gast)


Lesenswert?

OK danke für die Hilfe!!!

Ja das avr/io.h habe ich nicht eingegeben.



Ja jetzt geht es. Jetzt muss ich schauen, dass ich die richtigen 
Funktionen aufrufe, damit ich die Werte auf dem Display ausgeben kann.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Hans schrieb:
> Ja das avr/io.h habe ich nicht eingegeben.

Stattdessen aber iom8v.h. Nimm das raus. Und bitte das nächste mal den 
Quelltext auch als Text und nicht als Bild.

von Hans (Gast)


Angehängte Dateien:

Lesenswert?

Könnt ihr mir hier auch nochmal helfen?

Hab hier noch eine Fehlermeldung die ich nicht verstehe.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Hans schrieb:
> Könnt ihr mir hier auch nochmal helfen?
>
> Hab hier noch eine Fehlermeldung die ich nicht verstehe.

Auch die Fehlermeldungen kann man unten im Studio-Fenster per Copy&Paste 
hier als Text reinkopieren.

Hat den Vorteil, dass man danach suchen kann - Google oder Forumssuche.

Die Variable UpdateLcd scheint nicht zu existieren, d.h. sie wurde nicht 
definiert.

von Hans (Gast)


Lesenswert?

Wird hier so die Variable nicht definiert?


extern unsigned char  UpdateLcd;

von Felix A. (madifaxle)


Lesenswert?

Das extern kannst du weglassen, wenn du die Variable entweder global 
definierst oder wenn sie nur in einer Datei bekannt sein soll.

Einem Char weist man aber kein Bool zu.
Probiere mal:

#include <stdbool.h>

bool UpdateLCD


Oder wenn die Datei in einer Funktion dauerhaft erhalten bleiben soll:
static bool UpdateLCD


Nachtrag: UpdateLCD = true;  oder UpdateLCD = false;

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Hans schrieb:
> Wird hier so die Variable nicht definiert?
>
>
> extern unsigned char  UpdateLcd;

Nein, damit wird sie deklariert, nicht definiert. Übersetzt heißt das:

"Es gibt irgendwo eine Variable vom Typ unsigned char namens UpdateLcd".

Schnapp Dir ein C-Buch und beginne zu lernen. Durch 1000 Fragen in einem 
Forum lernt man keine Sprache.

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.