INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Attiny85 zu wenig Speicher
10.01.2019, 22:34 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2019 22:35 von Harry.)
Beitrag #17
RE: Attiny85 zu wenig Speicher
Beim Testen musste ich für den Attiny85 eine kleine Änderung an deinem Code vornehmen:

float mess = vcc / 1023 * analogRead(A1);
(A1) War ursprünglich (A0), der Attiny hat kein A0.

Beim übertragen in mein Programm ist die Zeile irgendwie verloren gegangen. Funktioniert aber trotzdem und mein LCD zeigt die richtige Spannung an.

Was bewirkt eigentlich das mess?

Harry
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2019, 22:49
Beitrag #18
RE: Attiny85 zu wenig Speicher
Das Verfahren ist ja 2-stufig.

Als erstes bestimmst Du mit einer bekannten (gemessenen) Betriebsspannung den genauen Wert der 1,1V-Referenz des jeweiligen Chips. Durch fertigungstoleranzen sind die bei jedem IC anders aber dann ziemlich stabil.

Wenn Du diesen Wert hast, kannst Du daraus die aktuelle Betriebsspannung bestimmen. Die steht dann im mess (kann man auch global deklarieren).
Bei konstanter Betriebsspannung kannst Du dann mit diesem Wert (anstelle der pauschalen 5V) bei analogen Messungen arbeiten.

Wenn die Betriebsspannung nicht so stabil ist, sollte man mess in gewissen Abständen (oder vor jeder Messung) neu bestimmen.

Nachteil ist, dass für jeden Chip vorher der eigene Wert der Referenz 1,1V bestimmt werden muss. (draufkleben)

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2019, 23:14
Beitrag #19
RE: Attiny85 zu wenig Speicher
(10.01.2019 22:49)Tommy56 schrieb:  Das Verfahren ist ja 2-stufig.

Als erstes bestimmst Du mit einer bekannten (gemessenen) Betriebsspannung den genauen Wert der 1,1V-Referenz des jeweiligen Chips. Durch fertigungstoleranzen sind die bei jedem IC anders aber dann ziemlich stabil.

Habe ich gemacht.

(10.01.2019 22:49)Tommy56 schrieb:  Wenn Du diesen Wert hast, kannst Du daraus die aktuelle Betriebsspannung bestimmen. Die steht dann im mess (kann man auch global deklarieren).
Bei konstanter Betriebsspannung kannst Du dann mit diesem Wert (anstelle der pauschalen 5V) bei analogen Messungen arbeiten.

Wenn die Betriebsspannung nicht so stabil ist, sollte man mess in gewissen Abständen (oder vor jeder Messung) neu bestimmen.

Das habe ich jetzt nicht so ganz verstanden.
Ich habe immer den wert "rvcc" als Spannungswert benutzt und der hat auch mit dem Wert meines Messgerätes überein gestimmt. Vielleicht kommt daher aber auch mein Problem, dass ich damals für den 328P eine Korrektur in deinen Code einfügen musste.

Code:
const float   eichung    = 4.50;    // Spannung mit welcher der interne Referenzwert ermittelt wurde  +++
const float   korrektur  = 0.15;    // 328P = 0.15  Nano = 0     +++

rvcc = rvcc + (eichung - rvcc) * korrektur;

Harry
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2019, 23:27
Beitrag #20
RE: Attiny85 zu wenig Speicher
Wenn Du den Wert der inneren 1,1V-Referenz für den Chip bestimmt hast, dann kannst Du den an jede beliebige "ca. 5V"-Spannungsquelle anschließen und den genauen Wert der Betriesspannung bestimmen. INTERN ist der spezielle Wert für den speziellen IC für die 1,1V-Reference.

float rvcc = INTERN * 1023L / result;

rvcc ist dann der aktuelle Betriebsspannungswert. Wie Du ihn auch gemessen hast.

Wenn die Betriebsspannung (egal warum, z.B. Batteriebetrieb ohne Stabilisierung) nicht sehr stabil ist, sollte man den Wert halt öfter bestimmen, sonst genügt es im Setup.

Du hat es schon richtig verstanden, ich habe mich evtl. unklar ausgedrückt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.01.2019, 18:05
Beitrag #21
RE: Attiny85 zu wenig Speicher
Hallo Tommy

(10.01.2019 23:27)Tommy56 schrieb:  Du hat es schon richtig verstanden, ich habe mich evtl. unklar ausgedrückt.

Da bin ich mir nicht so sicher und dein code lässt mir auch keine Ruhe.
Hast du Zeit und Lust mir ein paar Sachen zu erklären?

Hier noch einmal der komplette code Spannung messe Teil 2:

Code:
const float INTERN = 1.08; // bestimmt pro IC
float vcc = 5.0; // wird dann gemessen

float messenBetrieb() {
  // Lesen 1,1V-Referenz als Input mit Referenz Betriebsspannung vcc
  // Referenz Vcc und analog Input = interne Referenz 1,1V
  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    ADMUX = _BV(MUX5) | _BV(MUX0);
  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
    ADMUX = _BV(MUX3) | _BV(MUX2);
  #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #endif  

  delay(10); // Warten bis Referenz eingeschwungen
  ADCSRA |= _BV(ADSC); // Start Umwandlung
  while (bit_is_set(ADCSRA,ADSC)); // Messen

  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
  uint8_t high = ADCH; // unlocks both

  long result = (high<<8) | low;
  float rvcc = INTERN * 1023L / result;
  Serial.print("Betriebsspannung: ");Serial.println(rvcc);
  analogReference(DEFAULT);  // zurückstellen auf Vcc als Referenz
  delay(10); // Warten bis Referenz eingeschwungen
  return rvcc;
}

void setup() {
  Serial.begin(115200);
  Serial.println("Start");
  vcc  = messenBetrieb();
}

void loop() {
  float mess = vcc / 1023 * analogRead(A0);
}


Diesen teil können wir ignorieren, werde ich sowieso (noch nicht) verstehen:

Code:
float messenBetrieb() {
  // Lesen 1,1V-Referenz als Input mit Referenz Betriebsspannung vcc
  // Referenz Vcc und analog Input = interne Referenz 1,1V
  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    ADMUX = _BV(MUX5) | _BV(MUX0);
  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
    ADMUX = _BV(MUX3) | _BV(MUX2);
  #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #endif  

  delay(10); // Warten bis Referenz eingeschwungen
  ADCSRA |= _BV(ADSC); // Start Umwandlung
  while (bit_is_set(ADCSRA,ADSC)); // Messen

  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
  uint8_t high = ADCH; // unlocks both


Nun zu diesem Teil:

Code:
const float INTERN = 1.08; // bestimmt pro IC
float vcc = 5.0; // wird dann gemessen

Der interene Referenzwert wurde in Teil 1 ermittelt und wir hier der Constante "INTERN" zugewiesen.
VCC startet mit dem Wert 5. // Wird dann gemessen, heißt dass es egal ist was ich da angebe?



Code:
1  long result = (high<<8) | low;
2  float rvcc = INTERN * 1023L / result;
3  Serial.print("Betriebsspannung: ");Serial.println(rvcc);
4  analogReference(DEFAULT);  // zurückstellen auf Vcc als Referenz
5  delay(10); // Warten bis Referenz eingeschwungen
6  return rvcc;


(1) Hier bekommt "result" einen Wert zugewiesen. Woher ist mir glaube ich auch zu hoch.

(2) rvcc wird berechnet. Für was steht 1023L

(3) Der Wert für rvcc wird auf dem Bildschirm ausgegeben.

(4) Für was ist analogReference und wieso heist (DEFAULT) "zurückstellen auf Vcc als Referenz"?
Müsst es dann nicht heisen analogReference = VCC?
Demnach ist es auch nicht egal was weiter oben für VCC einen Wert festgelegt wird?

(6) Hier wird der Wert von rvcc an vcc unter void setup "vcc = messenBetrieb();" übergeben.


Die Spannung wird nur einmal beim Programmstart ermittelt.
Möchte ich die Spannung öfter messen, so muss ich in meinem loop nur "vcc = messenBetrieb();" eintragen um die aktuelle Spannung in der Variable vcc zu haben?


Ws mir noch ein völliges Rätsel ist:

Code:
void loop() {
  float mess = vcc / 1023 * analogRead(A0);
}

Für mich wirkt es als ob der ganze code nur dafür da ist um "mess" einen Wert zu zu weisen. Wenn da jetzt "Serial.println(mess);" stehen würde, so würde ich es ja verstehen. Die Variable "mess" taucht aber sonst nirgends auf.

Viele Grüße
Harry
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.01.2019, 21:54
Beitrag #22
RE: Attiny85 zu wenig Speicher
(17.01.2019 18:05)Harry schrieb:  Diesen teil können wir ignorieren, werde ich sowieso (noch nicht) verstehen:
Code:
float messenBetrieb() {
  // Lesen 1,1V-Referenz als Input mit Referenz Betriebsspannung vcc
  // Referenz Vcc und analog Input = interne Referenz 1,1V
  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    ADMUX = _BV(MUX5) | _BV(MUX0);
  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
    ADMUX = _BV(MUX3) | _BV(MUX2);
  #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #endif
Das ist nur die notwendige Anpassung an die verschiedenen Prozessortypen. Die 1,1V-Referenz liegt bei den verschiedenen Prozessoren an verschiedenen Stellen der möglichen Analog"eingänge).

(17.01.2019 18:05)Harry schrieb:  
Code:
delay(10); // Warten bis Referenz eingeschwungen
  ADCSRA |= _BV(ADSC); // Start Umwandlung
  while (bit_is_set(ADCSRA,ADSC)); // Messen

  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
  uint8_t high = ADCH; // unlocks both
  // Dein 1 ziehe ich hier mal wieder dazu
  long result = (high<<8) | low; // man könnte hier auch unsigned int nehmen
Register ADCSRA Bit ADSC (das sind definierte Konstanten) zeigt an, wenn die Umwandlung fertig ist.
In den beiden 8-Bit-Registern ADCL (ADC LOW) und ADCH (ADC HIGH) liegt das Ergebnis. Die Reihenfolge ist vom Prozessor vorgegeben. Aus diesen müssen wir eine gemeinsame Zahl bilden:
Eine 16-Bit-Zahl hat 8 höherwertige und 8 niederwertige Bits.
HHHH HHHH LLLL LLLL
Die beiden Register sind erst mal alle niederwertige Bits. Also müssen wir den höherwertigen Teil um 8 Positionen nach links schieben (high << 8) und dann fügen wir den niederwertigen Teil hinzu. Suchbegriff Bitmanipulationen.


(17.01.2019 18:05)Harry schrieb:  
Code:
const float INTERN = 1.08; // bestimmt pro IC
float vcc = 5.0; // wird dann gemessen

die 5.0 sind nur dafür da, dass erst mal was drin steht (das ist der Wert, mit dem wir normalerweise rechnen).

(17.01.2019 18:05)Harry schrieb:  
Code:
long result = (high<<8) | low;  [color=#32CD32]// habe ich oben erklärt[/color]
float rvcc = INTERN * 1023L / result;  [color=#32CD32]// die reale vcc[/color]
Serial.print("Betriebsspannung: ");Serial.println(rvcc);
analogReference(DEFAULT);  [color=#32CD32]// zurückstellen auf Vcc als Referenz wir wollen ja damit weiter messen[/color]

(2) rvcc wird berechnet. Für was steht 1023L -- Für 1023Long

(4) Für was ist analogReference und wieso heist (DEFAULT) "zurückstellen auf Vcc als Referenz"?
Müsst es dann nicht heisen analogReference = VCC?
Der Arduino UNO hat 3 mögliche Referenzspannungen: Default = Betriebsspannung, 1,1 V, externe Referenz (der MEGA hat noch zusätzlich 2,56 V intern). Im Weiteren Verlauf wollen wir ja wieder mit der Betriebsspannung, die wir gerade bestimmt haben, als Referenz nutzen. Mit = ist da wenig zu tun, da da einiges intern im Prozessor umgestellt werden muss.
(6) Hier wird der Wert von rvcc an vcc unter void setup "vcc = messenBetrieb();" übergeben.
Hier merken wir uns die reale Vcc für unsere weiterten Messungen.

Die Spannung wird nur einmal beim Programmstart ermittelt.
Möchte ich die Spannung öfter messen, so muss ich in meinem loop nur "vcc = messenBetrieb();" eintragen um die aktuelle Spannung in der Variable vcc zu haben?

Ja.


Ws mir noch ein völliges Rätsel ist:

Code:
void loop() {
  float mess = vcc / 1023 * analogRead(A0);
}
[/quote]
mess ist nur ein symbolisches Beispiel für eine Messumg im laufenden Betrieb, um zu zeigen, dass man nicht 5.0 sondern den gemessenen Wert als Basis nimmt.

Ich habe das mit den Zitaten nicht völlig durchgehalten. Ich denke aber Du verstehst, was ich gemeint habe.
Sonst frage nochmal.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2019, 10:52
Beitrag #23
RE: Attiny85 zu wenig Speicher
Hallo Tommy,

erstmal vielen Dank für deine Mühe.
Ich habe mal folgendes getestet:

Testaufbau auf Steckbrett.
Als Stromquelle ein Labornetzteil und zusätzliche Kontrolle mit Multimeter direkt vor dem ZIF-Sockel.
328P-PU 8MHz interner Takt im ZIF-Sockel.
Interne Referenz ermittelt mit Teil1 (5V = 1,27))

(Dein code habe ich eingerückt, alle Änderungen von mir stehen am Zeilenanfang)


Code:
// Betriebsspannung messen Teil 1/2
// https://www.arduinoforum.de/arduino-Thread-Messen-der-eigenen-Betriebsspannung-mit-dem-Arduino
//  für den reinen 328P muss eine Korrektur eingefügt werden (siehe Humidor)

#include <LiquidCrystal_I2C.h>    // LCD Display Bibliothek
LiquidCrystal_I2C lcd(0x38, 16, 2);   // Adresse + Display festlegen
const float   eichung    = 5.00;    // Spannung mit welcher der interne Referenzwert ermittelt wurde  +++
const float   korrektur  = 0.15;    // 328P = 0.15  Nano = 0     +++
float aaa = 0;

   const float INTERN = 1.27; // bestimmt pro IC
   float vcc = 5.0; // wird dann gemessen

   float messenBetrieb() {
     // Lesen 1,1V-Referenz als Input mit Referenz Betriebsspannung vcc
     // Referenz Vcc und analog Input = interne Referenz 1,1V
     #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
       ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
     #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
       ADMUX = _BV(MUX5) | _BV(MUX0);
     #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
       ADMUX = _BV(MUX3) | _BV(MUX2);
     #else
       ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
     #endif  

(2)  delay(10); // Warten bis Referenz eingeschwungen
     ADCSRA |= _BV(ADSC); // Start Umwandlung
     while (bit_is_set(ADCSRA,ADSC)); // Messen

     uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
     uint8_t high = ADCH; // unlocks both

     long result = (high<<8) | low;
     float rvcc = INTERN * 1023L / result;
//Serial.print("Betriebsspannung: ");Serial.println(rvcc);
aaa = rvcc + (eichung - rvcc) * korrektur;
lcd.setCursor(0, 0); lcd.print("rvcc:           ");
lcd.setCursor(5, 0); lcd.print(rvcc);  
lcd.setCursor(11, 0); lcd.print(aaa);    
(1)  analogReference(DEFAULT);  // zurückstellen auf Vcc als Referenz
(2)  delay(10); // Warten bis Referenz eingeschwungen
     return rvcc;
   }

   void setup() {
lcd.begin();;
//Serial.begin(115200);
//Serial.println("Start");
//vcc  = messenBetrieb();
   }

   void loop() {
vcc  = messenBetrieb();
     float mess = vcc / 1023 * analogRead(A0);
lcd.setCursor(0, 1); lcd.print("mess:           ");
lcd.setCursor(5, 1); lcd.print(mess);  
delay(2000);
   }

Testweise habe ich (1) und (2) ebenfalls entfernt.
Wenn ich (2) entferne, so ist die erste Messung falsch, alle anderen sind ok.
Testweise (2) entfernt, kein Unterschied (gemessen bei 3,5V + 5,0V)
Ich hatte diverse Schwankungen, die kamen aber vermutlich durch das Steckbrett.


Code:
x                    RVCC  aaa   mess

3,5V mit  Zeile (1)  3,15  3,44  1,15
5,0V mit  Zeile (1)  4,94  4,95  1,23

3,5V ohne Zeile (1)  3,25  5,52  1,19
5,0V ohne Zeile (1)  4,90  4,92  1,24

(17.01.2019 21:54)Tommy56 schrieb:  
(17.01.2019 18:05)Harry schrieb:  
Code:
void loop() {
  float mess = vcc / 1023 * analogRead(A0);
}
mess ist nur ein symbolisches Beispiel für eine Messumg im laufenden Betrieb, um zu zeigen, dass man nicht 5.0 sondern den gemessenen Wert als Basis nimmt.

Mit "mess" und "analogReference(DEFAULT);" habe ich noch ein bischen meine Probleme.
Der Wert von Mess ist fast identich mit dem Wert was im Teil1 als interne Referenzwert gemessen wurde. Hat das damit etwas zu tun?

(17.01.2019 21:54)Tommy56 schrieb:  Der Arduino UNO hat 3 mögliche Referenzspannungen: Default = Betriebsspannung, 1,1 V, externe Referenz (der MEGA hat noch zusätzlich 2,56 V intern). Im Weiteren Verlauf wollen wir ja wieder mit der Betriebsspannung, die wir gerade bestimmt haben, als Referenz nutzen. Mit = ist da wenig zu tun, da da einiges intern im Prozessor umgestellt werden muss.

Wird für die erste Messung die festgelegte 5,0V vom Anfang genommen und die weiteren Messungen erfolgen jeweils mit dem gemessenen Wert, so dass sich die Messung langsam einpendelt? Dann müsste aber einen Änderung von VCC=5 auf VCC=500 die erste Messung verfälschen, tat es aber nicht.

1,1V ist das die interne Referenz welche produkionsbedingt schwankt und in Teil1 ermittelt wurde (hier 1,27)?

Was ist dann die externe Referenz?

Vielen Dank
Harry
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2019, 11:04
Beitrag #24
RE: Attiny85 zu wenig Speicher
1,27 V erscheint mir etwas hoch.
Hast Du die 5V bei der Messung 1 (Bestimmen der inneren Referenz) mit dem Messgerät kontrolliert und den gemessenen Wert in den Sketch 1 eingetragen?

Die 10 ms braucht es, um den internen Messkondensator umzuladen.
Zur externen Referenz verweise ich mal aufs Datenblatt. Die kommt an Uref.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Ram Speicher bei Arduino Mega wird knapp unkreativ 22 1.026 02.02.2019 18:40
Letzter Beitrag: unkreativ
  Attiny85 mit I2C LCD Harry 9 592 07.01.2019 18:33
Letzter Beitrag: Tommy56
  Attiny85 sleep Harry 2 318 27.12.2018 19:21
Letzter Beitrag: Harry
  Keine Tonübertragung mit ATtiny85 möglich delay 7 560 08.12.2018 20:49
Letzter Beitrag: georg01
  Code für Speicher optimieren Sasch600xt 35 3.121 31.08.2018 12:41
Letzter Beitrag: Sasch600xt
  ATtiny85 - PWM mit 18-30KHz phischmi 5 991 09.04.2018 17:31
Letzter Beitrag: hotsystems
Sad zu wenig Speicher im Nano (Schulprojekt) Dock.Blanko 5 1.019 10.02.2018 12:00
Letzter Beitrag: rkuehle
  PWM auf Attiny85 Andreas75s 9 2.239 18.12.2017 18:15
Letzter Beitrag: Mathias
Sad Nano - nicht genug Speicher torsten_156 10 3.953 30.10.2017 21:40
Letzter Beitrag: MicroBahner
  Kann man auf den internen Speicher zugreifen? Maxi290997 11 2.425 18.08.2017 19:51
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste