www.mikrocontroller.net

Forum: Compiler & IDEs PORT Dauerhaft setzen


Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen habe mal eine ganz einfache Frage,

ich will einen Port dauerhaft auf 5 V schalten nur wenn eine 
Abbruchbedingung kommt, dann will ich den Ausgang auf dauerhaft 0 V 
schalten lassen.

Irgendwie schaltet der mit dem befehl immer nur kurz einne Impuls dann 
is er wieder low:


PORTD |=(0<<PD2);

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein so geht es wie gesagt leider nicht , hab doch auch schon das 
tutorial durchgesehen er macht nur einen Impuls dann wieder low. Ich 
schreibe den befehlt gleich zu anfang der main nach der definition der 
ports

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Müeller wrote:
> Nein so geht es wie gesagt leider nicht , hab doch auch schon das
> tutorial durchgesehen er macht nur einen Impuls dann wieder low. Ich
> schreibe den befehlt gleich zu anfang der main nach der definition der
> ports
Hast Du immer noch nicht kapiert, dass es völliger Unfug ist, hier 
irgendwelche Programmschnipsel verbal zu beschreiben? Warum zum Geier 
schickst Du nicht den dazugehörigen Code einfach mit? Dann sieht jeder 
sofort, was Du da gemacht hast (möglicherweise eine vergessene 
Endlosschleife oder ein Reset durch einen "vergessenen" oder falsch 
initialisierten Interrupt oder...)

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ganz einfach, weil ich das nicht darf,

das ist für die industrie und da gilt höchste geheimhaltung, ist kein 
wichtigtun nur leider ist das so

was soll ich an Programmbeispiel schreiben....


ich will nur wissen wie ich einen µC von anfang an dazu bringen kann am 
ausgang 5 V auszugeben.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Müeller wrote:
> ich will nur wissen wie ich einen µC von anfang an dazu bringen kann am
> ausgang 5 V auszugeben.
So, wie es im Tutorial steht... DDRx auf Ausgang, PORTx auf 1! Ohne 
weitere Informationen deinerseits ist das alles, was man dazu sagen 
kann. Den Rest habe ich oben schon erwähnt.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Müeller wrote:

> PORTD |=(0<<PD2);

Ein ODER mit 0 ist flüssiger als Wasser.


Peter

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PORTD=(1<<PD2);  // port auf logisch 1 setzen


DDRD=0b11110100;  // PD2 als ausgang konfig.


hab ich doch genauso gemacht richtig?

Autor: jl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du deinen Compiler über diese Zeile laufen läss müsse er dir 
"remove dead code" bringen.

0<<x bleib 0 und ewas mi 0 zu verodern???


Ansonsten wirst du bestimmt noch mehr solcher Fehler haben die das ganze 
Port manipulieren und damit indirekt dein PIN verändern.



JL

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Müeller wrote:

> hab ich doch genauso gemacht richtig?

Was Du wirklich gemacht hast, weiß keiner.
Mal schreibst Du Hüh und mal Hott
Entscheide Dich.


Wenn Du Dir nicht sicher bist, was eine Instruktion macht, dann schreibe 
ein Programm was nur das macht.
Und dann kannst Du es auch posten, damit man Deinen Fehler sieht.


Peter

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso verodern? Hab ich da ein || drin oder sowas?

<< ist doch nur die Bitzuweisung

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Müeller wrote:
> Wieso verodern? Hab ich da ein || drin oder sowas?
>
> << ist doch nur die Bitzuweisung
Sag mal, willst Du uns alle veräppeln? Du hast in deinem OP geschrieben
> PORTD |=(0<<PD2);
(wie PeDa schon zitiert hat). Und das ist erstens blühender Unsinn und 
zweitens ist da ein ODER ("|") drin!

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Müeller wrote:

> das ist für die industrie und da gilt höchste geheimhaltung, ...

Du programmierst für die Industrie? Soll das ein Scherz sein?
Wenn ich mir diesen Thread (und auch deine Anderen) anschaue, läuft es 
mir kalt den Rücken runter. Wie kann man jemanden, der praktisch null 
Ahnung von C hat, eine Industrieanwendung programmieren lassen?
Da kann ich dann allerdings auch nachvollziehen, dass der Code unbedingt 
geheim gehalten werden muss.

Autor: Winfried J. (Firma: Nisch-Aufzüge) (winne)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Port D

lässt mich auf JTAG tippen

welcher µC konkret

da die Grundfunftionen offenbar nicht stehen, hast du vermutlich ein 
Problem mit den grundsätzlichen Einstellungen.

Die Cchips werden in einem bestimmten auslieferungs zustand versendet.
in selbeigem ist die Jtag aktiv. Bevor du  die nicht deactivierthast 
können einzelne Portpins blokiert sein. dies kannst entweder per fusebit 
ändern oder im Programm zur Laufzeit während der Initialisierung

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Müeller wrote:
> PORTD=(1<<PD2);  // port auf logisch 1 setzen
>
>
> DDRD=0b11110100;  // PD2 als ausgang konfig.
>
>
> hab ich doch genauso gemacht richtig?

das hatte ich geschrieben und da sehe ich kein oder zeichen, wer lesen 
kann ist im vorteil. ^^

der letzte beitrag ist immer der aktuellste.........

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jl wrote:

> Wenn du deinen Compiler über diese Zeile laufen läss müsse er dir
> "remove dead code" bringen.

Nö, da die PORTx-Register ja volatile sind, wird der Compiler
verpflichtet, das Register zu lesen und diesen Wert wieder
zurückzuschreiben.  Beispielsweise wäre ja:
  UDR |= 0;

eine lustige Variante für eine UART, die alle ihre empfangenen
Zeichen wieder echot.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Müeller wrote:
> ... wer lesen
> kann ist im vorteil. ^^
>
> der letzte beitrag ist immer der aktuellste.........

Der Ton macht die Musik und ich bin es nicht der Hilfe braucht.

Man könnte einfach dazu stehen, daß man Widersprüchliches geschrieben 
hat und sich dafür entschuldigen. Pampig werden kann ich auch.


Peter

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Ernst wrote:
> Da kann ich dann allerdings auch nachvollziehen, dass der Code unbedingt
> geheim gehalten werden muss.
Vor allem vor den Auftraggebern... (SCNR;-)

Autor: Rudi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lach
da kann das Programm ja nicht allzu lang sein, wenn man aus evtl. 10-20 
geposteten Zeilen bereits alle Komplettfunktionen des systems erkennen 
kann.
Andererseits muss man sich natürlich die Frage stellen: wenn es denn 'so 
geheim' ist, ist es dann überhaupt vom Fragensteller erlaubt, auch nur 
diese eine Zeile (dann auch noch in mehreren Variationen) ins Netz zu 
stellen??

In diesem Sinne wünsche ich euch ein sonniges WE

Rudi

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marco Müeller:
Hättest du dir den Abschnitt den ich in meiner ersten Antwort gegeben 
habe durchgelesen, dann wüsstest du auch was du falsch machst und wozu 
diese | und & - Verknüpfungen gut sind. Die Antwort die "Winfried J." 
gegeben hat ist für dich auch sehr interessant, also überprüfe dies mal 
bei dir, also ob JTAG ein oder ausgeschaltet ist in den Fusebits.

Nochmal zur Klarstellung: Der Befehl den du gepostet hast (PORTD 
|=(0<<PD2);) ist erstens nicht ganz korrekt, er müsste so lauten: PORTD 
|= ~(1<<PD2); (wie im Link beschrieben), und zweitens sollte er das tun 
was du willst, d.h. den Pin 2 des Ports D  auf 0 setzen (0V). Er macht 
das natürlich nicht, wenn du JTAG noch aktiviert hast, denn dann kannst 
du diesen Pin (PORT) nicht so konfigurieren wie du möchtest, da dies von 
der JTAG-Schnittstelle übernommen wird. Also schalte JTAG in den 
Fusebits aus und dann kannst du ihn auch als Eingang oder Ausgang 
schalten. Übrigens um deine gewünschten 5V zu erreichen müsstest du 
diesen PIN 2 vom PORTD auf 1 setzen, also PORTD |= (1<<PD2); aber nur 
bei deaktiverter JTAG-Schnittstelle. Wie du diese deaktivieren kannst 
findest du im AVR-GCC-Tutorial, im Datenblatt deines Atmegas (oder was 
auch immer) oder hier im Forum in zahlreichen Threads.

@Alle anderen: Ist zwar lustig aber irgendwie auch echt traurig, wenn es 
wirklich so ist wie es scheint ;). Ich denke zwar, dass jeder mal 
anfängt aber wenn man für die "Industrie" sowas schreibt, sollte man 
schon etwas mehr Erfahrung haben. Naja belustigend ist es am Freitag 
trotzdem :).

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marian wrote:

> @Alle anderen: Ist zwar lustig aber irgendwie auch echt traurig, wenn es
> wirklich so ist wie es scheint ;). Ich denke zwar, dass jeder mal
> anfängt aber wenn man für die "Industrie" sowas schreibt, sollte man
> schon etwas mehr Erfahrung haben.

Nee, ist ja OK, anfangen muss wirklich jeder mal, aber wie Peter schon
schrieb, muss man ja deshalb nicht gleich pampig auftreten.  Nichts
ist schlimmer als Leute, die fundamentale Fehler machen und dann das
Auftreten eines Graf Koks von der Gasanstalt an den Tag legen.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marian wrote:
> [...] er müsste so lauten: PORTD |= ~(1<<PD2); (wie im Link beschrieben),
In welchem Link ist das so beschrieben?

> und zweitens sollte er das tun
> was du willst, d.h. den Pin 2 des Ports D  auf 0 setzen (0V).
Das macht der aber nicht...

> Er macht das natürlich nicht, wenn du JTAG noch aktiviert hast,
Auch mit deaktiviertem JTAG macht der das nicht...

Ich bin mir ziemlich sicher, dass im Tutorial ein "&" vor dem "=" steht 
und kein "|"...

BTW: Bei welchem AVR ist JTAG an Port D? Mir fällt jetzt konkret kein 
einziger ein...

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Jörg Wunsch:

> Nee, ist ja OK, anfangen muss wirklich jeder mal, ...

Also ich finde das nicht OK. Klar, jeder muss mal anfangen, aber im 
Falle einer Industrieanwendung sollte man doch wohl die 
Programmiersprache und den Umgang mit einem µC vorher lernen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Ernst wrote:

> Also ich finde das nicht OK. Klar, jeder muss mal anfangen, aber im
> Falle einer Industrieanwendung sollte man doch wohl die
> Programmiersprache und den Umgang mit einem µC vorher lernen.

Warum?  Er könnte ja auch einfach dort Praktikant sein, und es ist
hinterher jemand da, der das betreuender Weise nochmal begutachtet.
Damit wäre er dennoch an die entsprechenden Geheimhaltungspflichten
gebunden.

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Johannes M.:

Da hast du natürlich recht :)...mit dem PORTD |= ~(1<<PD2) habe ich mich 
vertan bzw. vertippt, meinte natürlich PORTD &= ~(1<<PD2). Sorry :)

Gruß,

Marian

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Warum?  Er könnte ja auch einfach dort Praktikant sein, und es ist
> hinterher jemand da, der das betreuender Weise nochmal begutachtet.
> Damit wäre er dennoch an die entsprechenden Geheimhaltungspflichten
> gebunden.

Na, ich weiß nicht so recht. "Geheimhaltungspflicht" bedeutet ja, dass 
er an etwas Konkreten arbeitet, dass auch zum Einsatz kommen soll. Und 
"von Anfänger programmiert, dass von jemand Erfahrenen nochmal 
begutachtet wurde" ist nicht das gleiche wie "von jemand Erfahrenen 
programmiert". Man kann so vorgehen bei jemand, der noch keine Erfahrung 
mit dem bestimmten µC oder der bestimmten Programmiersprache hat, aber 
jemanden, der soo bei Null anfängt wie der OP, an ein konkretes 
Projekt zu setzen, halte ich nicht unbedingt für verantwortungsvoll. 
Zumal ich bei "ist für die industrie" in erster Linie an sowas wie 
Maschinen- und Prozesssteuerung denke, wo im Falle eines Fehlers auch 
ganz schnell mal die Gesundheit von Menschen gefährdet sein kann.

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wieso verodern? Hab ich da ein || drin oder sowas?
>
> << ist doch nur die Bitzuweisung

"<<" IST KEINE BITZUWEISUNG!!!!! AAAAAHHHHHHHHHHHHH!!!!(Du betreust im 
Normalfall sicher nur irgendwelche Serveranlagen!)

allso ein <<(SHIFT LEFT) schiebt die Bits deiner Variable nach Rechts:
etwa so
00000001   <<2 ergibt:
00000100

und wenn du  0<< 2 schreibst ist dass:
00000000   <<2 ergiebt
00000000

Das musst du dann nur richtig (bitweise)verknüpfen:
um jetzt ein bit in einer Variable zu setzen:
01000000  //Die Variable
00000100  //Deine zuvor erstellte Maske(manche Leute nennen das so)
Und jetzt ODER verknüpfen "|" das doppelte "||" wäre nur eine Logische 
Verknüpfung
01000100

Wenn man jetzt annähme dass die Variable ein Port währe dann hättest du 
jetzt nur den einen Pin gesetzt.
In C schreibt man dass dann so:
PORTX = PORTX | (1<<2);
oder
PORTX |= (1<<2);

Willst du jetzt einen Pin wieder zurücksetzten dann machst du das so:
du nimmst deine zuvor erstellte Maske:
00000100 //und invertierst sie mit "~"(genannt tilde)
ergibt:
11111011

wenn du das dann "&" verknüpfst mit deinem Portregister ergibt das:
11111011
&
01000100
=
01000100

Oder in C:
PORTX = PORTX & ~(1<<2);

kürzer:
PORTX &= ~(1<<2);

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry! Bin ausgezuckt!
Daher protzt mein Text nur so von Rechtschreibfehlern.
Ich wäre daher sehr dankbar wenn einer mit den nötigen Rechten sich dem 
text annähme und ihn auf Satzbau und Rechtschreibung korregiert.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Simon wrote:

> Ich wäre daher sehr dankbar wenn einer mit den nötigen Rechten sich dem
> text annähme und ihn auf Satzbau und Rechtschreibung korregiert.

Das können Moderatoren nicht.
Was du tun kannst: Den Text nochmal eingeben (Cut&Paste), selber
korrigieren und erneut posten. Dann kannst du den vorhergehenden
Post löschen. (Wenn du selbst nicht löschen kannst, kann ich das
für dich übernehmen)

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wieso verodern? Hab ich da ein || drin oder sowas?
>
> << ist doch nur die Bitzuweisung

"<<" IST KEINE BITZUWEISUNG!!!!! AAAAAHHHHHHHHHHHHH!!!!(Du betreust im
Normalfall sicher nur irgendwelche Serveranlagen!)

Also ein <<(SHIFT LEFT) schiebt die Bits deiner Variable nach Links.
etwa so:
00000001   <<2 ergibt:
00000100

und wenn du  0<< 2 schreibst ist dass:
00000000   <<2 ergibt:
00000000

Das musst du dann nur richtig (bitweise)verknüpfen,
um jetzt ein Bit in einer Variable zu setzen:
01000000  //Die Variable
00000100  //Deine zuvor erstellte Maske(manche Leute nennen das so)
Und jetzt ODER verknüpfen "|" das doppelte "||" wäre nur eine Logische
Verknüpfung
01000100

Wenn man jetzt annähme dass die Variable ein Port währe dann hättest du
jetzt nur den einen Pin gesetzt.
In C:
PORTX = PORTX | (1<<2);
kürzer:
PORTX |= (1<<2);


Willst du nun einen Pin wieder zurücksetzten dann machst du das so:

Du nimmst deine zuvor erstellte Maske:
00000100 //und invertierst sie mit "~"(genannt tilde)
ergibt:
11111011

Wenn du das dann mit deinem Portregister UND"&" verknüpfst ergibt das:
11111011
&
01000100
=
01000100

Oder in C:
PORTX = PORTX & ~(1<<2);
kürzer:
PORTX &= ~(1<<2);

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Ernst wrote:

> Na, ich weiß nicht so recht. "Geheimhaltungspflicht" bedeutet ja, dass
> er an etwas Konkreten arbeitet, dass auch zum Einsatz kommen soll.

Nein.  Oft genug musst du einfach mal bei Beginn deiner Tätigkeit
eine Schweigepflichtserklärung unterschreiben.

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte jetzt auch mal "klugscheissen" :).

@Simon: Kann es sein, dass in deinem Post ein kleiner Tippfehler 
enthalten ist? Speziell dieser Abschnitt:
>Wenn du das dann mit deinem Portregister UND"&" verknüpfst ergibt das:
>11111011
>&
>01000100
>=
>01000100

Ist aber nicht bös gemeint ;)

Wünsche allen ein schönes Wochenende :).

Gruß,

Marian

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg Ernst hat alles gesagt,was zu sagen ist.

Genau so ist es!

Ich spiele mich sicher nicht hoch, habe mit µC noch keine Erfahrungen 
bin aber noch jung und werde das schon noch lernen:-)

Und an alle komischen Leute die sich meinen zu belustigen....

schönes Wochenende


achja und es klappt inzwischen,

hatte den PORTD schon mit dem Timer belegt das hatte ich vergessen da 
das Programm mitleiweile schon so 700 Zeilen Quellcode hat

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Ernst wrote:

> Na, ich weiß nicht so recht. "Geheimhaltungspflicht" bedeutet ja, dass
> er an etwas Konkreten arbeitet, dass auch zum Einsatz kommen soll. Und
> "von Anfänger programmiert, dass von jemand Erfahrenen nochmal
> begutachtet wurde" ist nicht das gleiche wie "von jemand Erfahrenen
> programmiert". Man kann so vorgehen bei jemand, der noch keine Erfahrung
> mit dem bestimmten µC oder der bestimmten Programmiersprache hat, aber
> jemanden, der soo bei Null anfängt wie der OP, an ein konkretes
> Projekt zu setzen, halte ich nicht unbedingt für verantwortungsvoll.
> Zumal ich bei "ist für die industrie" in erster Linie an sowas wie
> Maschinen- und Prozesssteuerung denke, wo im Falle eines Fehlers auch
> ganz schnell mal die Gesundheit von Menschen gefährdet sein kann.


Ja es handelt sich um Prozesssteuerung.Und mesnchenleben sind nicht 
direkt in Gefahr;-)

ich sage mal so....jeder fängt mal an, der eine gleiche alles auf einmal 
,der andere hat Zeit nach und nach alles zu lernen

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Müeller wrote:

> ich sage mal so....jeder fängt mal an, der eine gleiche alles auf einmal
> ,der andere hat Zeit nach und nach alles zu lernen

Naja, nur mit Dingen wie <zitat>wer lesen kann ist im vorteil</zitat>
machst du dir halt keine Freunde unter denen, von denen du Hilfe
erwartest -- zumal du ja eingeloggt bist und damit auch in der Lage,
wenn du irgendwas falsch getippt hast, deine alten Postings für einige
Minuten noch zu editieren bzw. sie auch später noch zu Löschen.

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja! Sorry! hab mich wohl vertippt mit dem "&".
soll heißen:
11111011
&
01000100
=
01000000

Es war nicht mein Ziel jemanden zu denunzieren.
Ich wollte Marco ledeglich, auch wenn es nicht zur Problemlösung 
beiträgt, darauf hinweisen, dass "<<" nichts mit Bitzuweisungen zu tun 
hat(wie er es offensichtlich zuvor glaubte).

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.