www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik (Eagle-) Anfänger bräuchte Hilfe bei Schaltplan


Autor: Daniel Gilbert (daniel-g)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi alle zusammen,

Nachdem ich nun die Sache mit dem SPI geklärt habe, habe ich mich 
gestern und heute mal hingesetzt und den Schaltplan zu meiner Uhr mit 
EAGLE erstellt. Man muss dazu sagen, dass ich vorher noch nie mit dem 
Programm gearbeitet habe, deswegen ist vermutlich nicht alles perfekt.

Zu der eigentlichen Uhr und ihrer Funktionsweise habe ich in meinem Blog 
einen kleinen Beitrag:

http://danielgilbert.de/2009/02/11/led-uhr-teil-i

Die Schaltung zum Programmieren des µC steht schon und funktioniert 
auch. Man sieht auf dem Schaltplan nicht alle LEDs, weil das vom Platz 
her nicht auf A4 gepasst hat. Gibt es eine Möglichkeit, soetwas 
anzudeuten? Quasi sowas wie "..." in Texten?

Die Uhr soll noch einen Fotowiderstand spendiert bekommen (reichelt 
A906012, hoffe, mit dem kann man arbeiten). Denn nachts muss die Anzeige 
natürlich gedimmt werden, was sich mit dem MAX7219 ja recht einfach 
lösen lässt.

Die weiteren externen ICs sind der DS1620(Temperatur) und DS1337(RTC). 
In Eagle gab es die nicht, also habe ich sie selbst gebaut.

Fällt euch an der Schaltung etwas auf, was unbedingt geändert werden 
müsste oder die Funktion stören könnte? Und wie sieht es mit dem Aufbau 
des Plans aus? Ist der Übersichtlich genug?

Besten Dank fürs Gucken,
Daniel

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke mal C4 und C5 werden zu einer interessanten Funktionsstoerung 
fuehren. :-)

Auch R2-R3 ist nicht gerade ein geniale Loesungsanstatz da er die
maximal moegliche Uebertragungsgeschwindigkeit verlangsamt. Es sollte
ein Widerstand and Load, ich vermute das ist CS, reichen.

Ausserdem hoffe ich auch du bist dir ueber den Sinn von C1 im klaren.

Und von Pullups an I2C hast du auch noch nichts gehoert.

Olaf

p.s: Faedel erstmal lieber. Das macht dir fuer den Anfang die 
Reparaturen einfacher. .-)

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olaf wrote:
> Ich denke mal C4 und C5 werden zu einer interessanten Funktionsstoerung
> fuehren. :-)
Hmm... Die müssten an GND, oder?

> Auch R2-R3 ist nicht gerade ein geniale Loesungsanstatz da er die
> maximal moegliche Uebertragungsgeschwindigkeit verlangsamt. Es sollte
> ein Widerstand and Load, ich vermute das ist CS, reichen.
http://www.atmel.com/dyn/resources/prod_documents/...

Auf Seite 3 ist m.M.n eine ähnliche Beschaltung angegeben.

> Ausserdem hoffe ich auch du bist dir ueber den Sinn von C1 im klaren.
Der soll Spannungsschwankungen glätten, richtig?

> Und von Pullups an I2C hast du auch noch nichts gehoert.
Nee.

Autor: Daniel Gilbert (daniel-g)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So,

Habe den Plan mal aktualisiert. Habe R2 und R3 noch nicht geändert, aber 
den Rest. Ist es jetzt besser?

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel Gilbert wrote:
> So,
>
> Habe den Plan mal aktualisiert. Habe R2 und R3 noch nicht geändert, aber
> den Rest. Ist es jetzt besser?

nicht wirklich..Abblockkondensatoren gehören zwischen Vcc und GND am IC, 
nicht zwischen GND und IC...

Autor: Daniel Gilbert (daniel-g)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Justus,

Danke. Das heißt also, so wäre es richtig und die Kondensatoren könnten 
ihren Zweck erfüllen, oder?

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel Gilbert wrote:
> Hi Justus,
>
> Danke. Das heißt also, so wäre es richtig und die Kondensatoren könnten
> ihren Zweck erfüllen, oder?

C3 und C4 auf jeden Fall..Im Layout müssen die dann aber auch so dicht 
an "ihren" ICs sein wie möglich..

Autor: Daniel Gilbert (daniel-g)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke. :)

Fällt dir (oder wem anders) sonst noch irgendwas auf, was vielleicht 
nicht ganz so elegant ist oder Fehler verursachen könnte?

//Edit: Hab C1 jetzt auch mal an die Pins vom µC geschoben, damit man 
auf Anhieb erkennt, was er macht.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne den Uhrenbaustein nicht. Braucht der Quarz wirklich keine 
externen Kondensatoren nach Masse? -> Datenblatt.

Für die Funktion nicht wichtig, aber eine Konvention, die zur besseren 
Lesbarkeit des Schaltplans führt: GND-Symbole nach unten zeigen lassen, 
Betriebsspannungssymbole nach oben (Norden).

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst damit rechnen, daß die LEDs während des Programmierens lustige 
Muster anzeigen. Ist aber nicht schlimm.

Autor: Thomas Pircher (tpircher) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ISET beim MAX7219 ist nicht beschaltet.

Ich habe eine Frage: wie notwendig is der Kondensator (47nF) beim 
RESET-Pin? Zumindest bei Bausteinen mit DebugWire raet ATMEL davon ab, 
einen Kondensator zu verwenden.

Kann dieser Kondensator einfach weggelassen werden oder muss man dann 
unter Umstaenden mit ungewollten Resets rechnen?

Th

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi ihr,


Gerhard wrote:
> Ich kenne den Uhrenbaustein nicht. Braucht der Quarz wirklich keine
> externen Kondensatoren nach Masse? -> Datenblatt.

Zumindest die Beispielschaltung im Datenblatt lässt keinen erkennen, 
nein..

Gerhard wrote:
> Für die Funktion nicht wichtig, aber eine Konvention, die zur besseren
> Lesbarkeit des Schaltplans führt: GND-Symbole nach unten zeigen lassen,
> Betriebsspannungssymbole nach oben (Norden).

Hab ich umgesetzt.

Gerhard wrote:
> Du musst damit rechnen, daß die LEDs während des Programmierens lustige
> Muster anzeigen. Ist aber nicht schlimm.

Warum? Ich dachte, dafür sind die Widerstände in der Leitung, um den MAX 
während des Programmieren zu trennen? verwirrt

Thomas Pircher wrote:
> ISET beim MAX7219 ist nicht beschaltet.

Ja, ich bin mir noch nicht ganz sicher, wie ich das mit der 
Helligkeitsregelung und dem Fotowiderstand machen sollte. Hast du dazu 
vielleicht ne Idee?

Zum Kondensator: Den habe ich eigentlich nur drin, weil der hier im 
Tutorial in der Schaltung auch dabei ist.

http://www.mikrocontroller.net/articles/Bild:Avr-s...

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sodele,

Hab jetzt nochmal den Schaltplan erweitert und den LDR eingebaut. Ich 
denke mal, der Widerstand R8 wird zu nem Poti, um den Schwellwert 
einstellen zu können. ADC werde ich nicht nutzen, denn ich muss 
eigentlich nur wissen, ob hell oder dunkel. Eine qualitative Messung ist 
mir nicht wichtig.

Sonst müsste eigentlich doch alles passen, oder? Abgesehen von der Sache 
mit den Widerständen R2 und R3, die in meinen Augen noch nicht ganz 
geklärt ist. Hmmm...


Gruß,
Daniel

Autor: Daniel Gilbert (daniel-g)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Argh... Anhang vergessen... :(

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die beiden 10k-Widerstände würde ich einfach weglassen. Du brauchst sie 
in diesem speziellen Fall nicht, weil du ja nur Eingänge des MAX7219 
am SPI-Interface hast. Diese stören den Flash-Vorgang nicht. Der 
Programmer wird allerdings nicht nur den Atmel, sondern auch den MAX 
beschreiben.

10k sind eh zu viel, 1k wären als "Isolationswiderstand" angemessen. Man 
benutzt diese, wenn ein Ausgang am SPI-Port angeschlossen ist, der 
während des Programmiervorgangs für einen Kurzschluß sorgen könnte. Der 
Widerstand wäre groß genug, um den Strom zu begrenzen, aber klein genug, 
um die Kommunikation nicht zu stören, wenn der Programmer nicht 
angeschlossen ist.

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Gerhard,

Jetzt fällt es mir wie Schuppen von den Augen. ;) Und wenn ich möchte, 
dass die LEDs während des Programmierens keinen Mucks tun, dann setze 
ich einfach Jumper ein, richtig?

Dann kann ich ja Montag mit'm verdrahten anfangen **froi**

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich hab jetzt den MAX7219 mit ATMega8 verdrahtet. Allerdings muss 
irgendwo ein Fehler stecken:

Wenn ich den Programmer anschließe und den µC programmiere, dann 
leuchten alle LEDs und bleiben auch an, nachdem ich den ISP abgezogen 
habe. Unterbreche ich die Stromversorgung, und stelle sie dann wieder 
her, dann bleibt alles aus. Als würde der ISP beim MAX7219 den Testmode 
auslösen. **grübel**

Testweise habe ich die Initialisierungssequenz in eine Schleife gepackt. 
Wenn ich den Strom wegnehme, und wieder anschließe, dann bleibt alles 
duster. Ziehe ich jetzt den Jumper zwischen DIN und MOSI, dann flackern 
die LEDs. Stecke ich ihn wieder auf, dann leuchten alle. Manchmal, aber 
eher selten, gehen sie dann auch alle aus.

Kann jemand aus dem Verhalten ableiten, wo der Fehler stecken könnte? 
Eventuell hat einer von euch mit dem IC schonmal dieses Problem gehabt. 
Ich hab mal den QT hier für euch, geschrieben in Pascal, sollte recht 
einfach zu lesen sein, auch für jemanden, der sich mit Pascal gar nicht 
auskennt:
program Led_Clock;

{$NOSHADOW}
{ $WG}                     {global Warnings off}

Device = mega8, VCC=5;
{ $BOOTRST $00C00}         {Reset Jump to $00C00}

Import SysTick, SPIdriver;

From System Import ;


Define
  ProcClock      = 1000000;       {Hertz}
  SysTick        = 10;             {msec}
  StackSize      = $0032, iData;
  FrameSize      = $0032, iData;
  SPIpresc       = 1;
  SPIOrder       = MSB;
  SPICPOL        = 0;
  SPICPHA        = 1;
  SPI_SS         = false;

Implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

type


{--------------------------------------------------------------}
{ Const Declarations }

{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
 var
   Dout : Word;
   LOAD[@PortC]  : byte;
   LOADDDR[@DDRC] : byte;
{--------------------------------------------------------------}
{ functions }
procedure InitPorts;
begin
  LOADDDR := %00000001;  // PC0 als Ausgang deklarieren
  LOAD.0 := 1;  // LOAD high
end InitPorts;

{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin
  InitPorts;
  EnableInts;
 loop
  Dout:=$0900;                  // Decode Mode deaktivieren
  LOAD.0 := 0;  // LOAD LOW
  SPIOut(@Dout,SizeOf(Dout));
  LOAD.0 := 1;  // LOAD HIGH
  Dout:=$0A0F;                  // Intensität auf Maximum
  LOAD.0 := 0;  // LOAD LOW
  SPIOut(@Dout,SizeOf(Dout));
  LOAD.0 := 1;  // LOAD HIGH
  Dout:=$0B07;                  // Anzahl der Displays = 8
  LOAD.0 := 0;  // LOAD LOW
  SPIOut(@Dout,SizeOf(Dout));
  LOAD.0 := 1;  // LOAD HIGH
  Dout:=$0C01;                  // Display einschalten
  LOAD.0 := 0;  // LOAD LOW
  SPIOut(@Dout,SizeOf(Dout));
  LOAD.0 := 1;  // LOAD HIGH
  Dout:=$0F00;                  // Display Test aus
  LOAD.0 := 0;  // LOAD LOW
  SPIOut(@Dout,SizeOf(Dout));
  LOAD.0 := 1;  // LOAD HIGH
  endloop;
end Led_Clock.

//P.s.: Eigentlich bin ich kein Freund davon, aber CP mit dem 
AVRco-Forum, da der QT in Pascal geschrieben wurde.

Danke euch schonmal,
Daniel

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist zum Weinen. Ich weiß nicht, ob es an einer verseuchten 
Grundspannung liegt oder sonstwas. Sehr mysteriös ist wie schon 
geschrieben, dass alle LEDs leuchten. Eigentlich dürfte das nicht 
passieren.

DIN habe ich ja mit einem Jumper mit MOSI verbunden. Wenn ich den Jumper 
entferne und langsam an die Pins der Brücke führe, flackert das Panel 
wie blöde. Ich habe jetzt zwischen dem VCC-PIN und einem der beiden 
GND-PIN einen 100nF-Kerko und einen 10µF-ELKO, so steht es zumindest 
hier:

http://www.arduino.cc/playground/Main/MAX72XXHardware

Was ich oben noch vergessen habe, das waren die PINS SCK und MOSI als 
Ausgänge zu schalten.

Müssen vielleicht irgendwo noch welche Blockkondensatoren hin?  :cry:

Mein aktueller Code:
program Led_Clock;

{$NOSHADOW}
{ $WG}                     {global Warnings off}

Device = mega8, VCC=5;
{ $BOOTRST $00C00}         {Reset Jump to $00C00}

Import SysTick, SPIdriver;

From System Import ;


Define
  ProcClock      = 1000000;       {Hertz}
  SysTick        = 10;             {msec}
  StackSize      = $0032, iData;
  FrameSize      = $0032, iData;
  SPIpresc       = 1;
  SPIOrder       = MSB;
  SPICPOL        = 0;
  SPICPHA        = 1;
  SPI_SS         = false;

Implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

type


{--------------------------------------------------------------}
{ Const Declarations }

{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
 var
   Dout : Word;
   LOAD[@PortC]  : byte;
   SPIDDR[@DDRB] : byte;
   LOADDDR[@DDRC] : byte;
{--------------------------------------------------------------}
{ functions }
procedure InitPorts;
begin
  LOADDDR := %00000001;  // PC0 als Ausgang deklarieren
  SPIDDR.3 := 1;
  SPIDDR.5 := 1;
  LOAD.0 := 1;  // LOAD high
end InitPorts;

{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin
  InitPorts;
  EnableInts;
 loop
  Dout:=$0900;                  // Decode Mode deaktivieren
  LOAD.0 := 0;  // LOAD LOW
  SPIOutWord(Dout);
  LOAD.0 := 1;  // LOAD HIGH
  Dout:=$0A01;                  // Intensität auf Maximum
  LOAD.0 := 0;  // LOAD LOW
  SPIOutWord(Dout);
  LOAD.0 := 1;  // LOAD HIGH
  Dout:=$0B07;                  // Anzahl der Displays = 8
  LOAD.0 := 0;  // LOAD LOW
  SPIOutWord(Dout);
  LOAD.0 := 1;  // LOAD HIGH
  Dout:=$0C01;                  // Display einschalten
  LOAD.0 := 0;  // LOAD LOW
  SPIOutWord(Dout);
  LOAD.0 := 1;  // LOAD HIGH
  Dout:=$0109;                  // Display Test aus
  LOAD.0 := 0;  // LOAD LOW
  SPIOutWord(Dout);
  LOAD.0 := 1;  // LOAD HIGH
  endloop;
end Led_Clock.

P.S.: Liegt das an mir, dass auf den letzten Beitrag keiner geantwortet 
hat? Wenn ja, bitte ich um Hinweise, was ich besser machen soll.

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum verwendest Du nicht eine RS232 Schnittstelle, um Debug-Ausgaben 
sichtbar zu machen ? Ich finde so etwas sehr praktisch, besonders wenn 
man kein Oszi besitzt ...

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Pete,

Dann müsste ich mir auf dem Board erst eine Schnittstelle implementieren 
und bis ich die Teile habe... reichelt ist zwar gleich um die Ecke, 
aber... Letzendlich wird das wohl die letzte Möglichkeit sein. 
Vielleicht hat ja noch wer einen Geistesblitz... Danke dir aber für 
deinen Vorschlag. ;)

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun,

Es hat sich heraugestellt, dass es doch an meinem Code liegen muss, denn 
ein Basic Code aus den weiten des Webs läuft. Sollte ich den Code 
portiert haben, dann stelle ich ihn der Vollständigkeit halber hier 
reinstellen... ;)

Gruß,
Daniel

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist der funktionierende Wühltext:
program LED_BCD_Uhr;

{$NOSHADOW}
{ $WG}                     {global Warnings off}

Device = mega8, VCC=5;
{ $BOOTRST $00C00}         {Reset Jump to $00C00}

Import SysTick, RTclock;

From System Import ;


Define
  ProcClock      = 1000000;       {Hertz}
  SysTick        = 10;             {msec}
  StackSize      = $0032, iData;
  FrameSize      = $0032, iData;
  RTClock        = iData, DateTime;      {Time, DateTime}
  RTCsource      = SysTick;

Implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

type


{--------------------------------------------------------------}
{ Const Declarations }

{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var
  DOUT : Word;
  SPIDDR[@DDRB]   : byte;
  i: byte;


{--------------------------------------------------------------}
{ functions }

procedure RTCtickSecond;      // CallBack from RTCclock
begin
end;

procedure RTCtickMinute;      // CallBack from RTCclock
begin
end;

procedure RTCtickHour;        // CallBack from RTCclock
begin
end;

procedure SendOutWord(DATA: Word);
var
   n: byte;
   temp: byte;
begin
   for n := 7 downto 0 do
       PORTB.5 := FALSE;
       temp    := Hi(DATA);
       PORTB.3 := Bit(temp, n);
       PORTB.5 := TRUE;
   endfor;
   
   for n := 7 downto 0 do
       PORTB.5 := FALSE;
       temp    := Lo(DATA);
       PORTB.3 := Bit(temp, n);
       PORTB.5 := TRUE;
   endfor;
   PORTB.2 := FALSE;
   PORTB.2 := TRUE;
end;

procedure WriteToMAX7219(DATA: Word);
begin
  //Disable Ints
  DisableInts;

  SendOutWord(DATA);

  EnableInts;
end;

procedure InitiateMAX7219;
begin
  SPIDDR := %0010 1100;   //SPI SS, MOSI, SCK als Ausgang
  
  //Send to Shutdown
  WriteToMAX7219($0C00);
  
  //Disable Decode Mode
  WriteToMAX7219($0900);
  
  //Set Brightness LOW
  WriteToMAX7219($0A09);
  
  //Set to 8 digits
  WriteToMAX7219($0B07);
  
  //Deactivate Testmode
  WriteToMAX7219($0F00);
  
  //Power it Up
  WriteToMAX7219($0C01);
  
end;



{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin

  EnableInts;

  for i := 0 to 3 do
   InitiateMAX7219;
  endfor;
  
  WriteToMAX7219($0101);
  WriteToMAX7219($0203);
  WriteToMAX7219($0307);
  WriteToMAX7219($040F);
  WriteToMAX7219($0509);
  WriteToMAX7219($060B);
  WriteToMAX7219($0707);
  WriteToMAX7219($0800);

  loop

      nop;
      
  endloop;
  
end LED_BCD_Uhr.

Gruß,
Daniel

Autor: Guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das von Dir geschilderte Problem kenne ich vom MAX7221. Ich nahm immer 
an, dass er in den Testmode geht, da alle LED leuchteten. Habe also 
immer versucht den Mode abzuschalten, aber brachte nix. Als ich dann 
einfach einmal Daten gesendet habe wurden diese jedoch angezeigt. 
Scheint also normal zu sein.

Gruss

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ja, dass es einige Stolpersteine bei diesem Baustein gibt habe ich auch 
schon gehört und eben auch erfahren. Aber wenn der einmal läuft, dann 
ist es doch ein sehr bequemes programmieren.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
for i := 0 to 3 do
endfor;

loop
endloop;

Bitte nenne das nicht Pascal ;-)

Autor: Daniel Gilbert (daniel-g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Immer noch schöner als Basic und C. ;)

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.