Forum: Mikrocontroller und Digitale Elektronik Fehler beim Kompilieren mit PortA


von Franz M. (shadow010)


Angehängte Dateien:

Lesenswert?

Guten Morgen Zusammen

Ich wollte eine Led am PortA.5 blinken lassen. Jedoch erhalte ich immer 
div. Fehlermeldungen welche ich im Anhang beigefühgt habe.
Wenn ich nun das Program so umschreibe das es am PortB.5 blinken soll 
funktioniert dies. Wo liegt mein Fehler?

Programm mit Fehlermeldung:

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  DDRA = (1<<PA5);
  while (1) {
    PORTA &= ~(1<<PA5);
    _delay_ms(500);
    PORTA |= (1<<PA5);
    _delay_ms(500);
  }
}


gibt keine Fehlermeldung:

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  DDRB = (1<<PB5);
  while (1) {
    PORTB &= ~(1<<PB5);
    _delay_ms(500);
    PORTB |= (1<<PB5);
    _delay_ms(500);
  }
}

Aus der Fehlermeldung sehe ich schon das mit A Port der Quarz nicht 
definiert ist aber wieso dann wenn ich A durch B ersetzte?

Gruss und Danke

von Klaus D. (kolisson)


Lesenswert?

da wirst du wohl mal den richtigen Prozessor und den Takt deklarieren 
müssen.
Zudem vielleicht mal prüfen ob es bei deinem geheimen Modell überhaupt
einen Port A gibt.

Klaus

von Rolf M. (rmagnus)


Lesenswert?

Franz Maier schrieb:
> Ich wollte eine Led am PortA.5 blinken lassen. Jedoch erhalte ich immer
> div. Fehlermeldungen welche ich im Anhang beigefühgt habe.

Hat dein (uns unbekannter) Mikrocontroller denn einen Port A, und hast 
du diesen Mikrocontroller auch in deiner IDE ausgewählt?

Franz Maier schrieb:
> Aus der Fehlermeldung sehe ich schon das mit A Port der Quarz nicht
> definiert ist aber wieso dann wenn ich A durch B ersetzte?

Also kommt die Warnung über F_CPU nicht, wenn du Port B benutzt? Das 
wäre ungewöhnlich. F_CPU muß definiert werden, damit die 
delay-Funktionen wissen, wie schnell der Prozessor getaktet ist.

von spess53 (Gast)


Lesenswert?

Hi

Vielleicht hat dein unbekannter Controller keinen PortA.

MfG Spess

von Stone (Gast)


Lesenswert?

Welcher Chip ist den im Projekt ausgewählt?
Wahrscheinlich hat der ausgewählte Chip Keinen PORTA und damit die io.h 
auch kein Define dafür.

um die Warning weg zu bekommen musst du noch der Delay Funktion 
mitteilen wie schnell dein µC läuft. (z.B. #define F_CPU 8000000UL wenn 
dein µC mit 8MHz läuft).


Gruß Matthias

von Franz M. (shadow010)


Lesenswert?

Ach Sorry Prozessor ist ein Mega32 und den habe ich auch ausgewählt

von Oliver S. (oliverso)


Lesenswert?

Zeig mal die Kommandozeile des Compilers, und überprüfe die 
Projekteinstellungen. Da ist garantiert doch ein Mega8 o.ä. eingestellt, 
kein Mega32.

Oliver

von Franz M. (shadow010)


Lesenswert?

Hallo

Danke für eure Antworten ich habe alles nochmals kontroliert aber die 
Einstellungen waren richtig.
Danach ist mir eingefallen das ich irgenwo noch ein älteren PC 
rumliegenhabe mit AVR Studio. Ich habs da versucht und es lief auf 
anhieb.

Nun habe ich mein PC neu aufgesetzt und AVR Studio 5.1 neu installiert 
und aus noch unerklärlichen Gründen kann ich nun kompilieren ohne 
Fehlermeldung.

Vielleicht war irgendwas zerschossen.

Gruss und Danke

von Klaus D. (kolisson)


Lesenswert?

puhh, Sachen gibts.

k.

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.