Bascom LCD Uhr mit Wecker brauche hilfe

sucharik

Mitglied
01. Nov. 2011
32
0
6
Bonn
Sprachen
  1. BascomAVR
Hallo Forum User.

Habe es vorgenommen eine schöne Lcd-Uhr-Wecker für meine Tochter zu basteln.
ist auch alles so weit fertig.

Nur mit dem CODE bin mir nicht ganz sicher!
denn es gibt bestimmt Regeln in der Reihenfolge die ich noch nicht kenne.

Könnt ihr mir bitte bei Helfen!
DSC07704.jpg
Code:
'V2.1
'LCD FORMAT __UHR___00:00:00
'           >ALARM<_00:00___

$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 23
$swstack = 23
$framesize = 10
'-----LCD Configurieren
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , _
Db6 = Portc.4 , Db7 = Portc.5 , Rs = Portd.0 , E = Portd.1
Config Lcd = 16 * 2
Config Lcdbus = 4
Cursor Off
Cls
'-----Tiner2---als---EchtzeitUhr---Configurieren
On Timer2 Takt
Assr.as2 = 1                                                '-Bit AS2=1: Asynchroner Timer2-Betrieb
Tccr2 = &B00010101                                          '-Bits6+3=00:     Nicht-PWM-Modus
                                                            '-Bits5+4=01:     Pin OC2 invertieren
                                                            '-Bits2+1+0=101:  Takt 32768Hz/128=256Hz
Timsk.toie2 = 1                                             '-Timer2-Overflow-Interrupt an
Waitms 1000                                                 '-Eine Sekunde warten bis Quarz schwingt

'-----ADC---fuer---LCDBeleuchtung-Configurieren
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'-----Port's---Configurieren
Ddrb = &B00001001                                           '-Pins PB0+PB3 sind Ausgang
Ddrc = &B00111110                                           '-PC.0 ADC Rest LCD
Portc.1 = 0                                                 '-PC.1 LCD Beleuchtung
Ddrd = &B10000011                                           '-PD0+1+7 Ausgaenge PD2+3+4 Eingaenge
Portd = &B00011100                                          '-PD2+3+4 Pullup Wiederstand AN
'-----Ausg?nge-----Configurieren-----
Lcd_licht Alias Portc.1                                     '-LCD Beleuchtung Auto AN-AUS
Speaker Alias Portb.0                                       '-Pipser an PORTB.0
Led Alias Portd.7                                           '-Led an Portb.7
'-----Eing?nge---Configurieren-----
Stunde_plus Alias Pind.2                                    '-Taster Stunde_plus
Minute_plus Alias Pind.3                                    '-Taster Minute_plus
Alarm_an_aus Alias Pind.4                                   '-Taster Alarm_an_aus
'-----Variablen-----
Dim Sekunde As Byte                                         '-Sekunde
Dim Minute As Byte                                          '-Minute
Dim Stunde As Byte                                          '-Stunde
Dim Aminute As Byte                                         '-Alarm Minute
Dim Astunde As Byte                                         '-Alarm Stunde
Dim A As Bit

'-----String LCD anzeige-----
Dim S As String * 2                                         '-LCD Stunde
Dim M As String * 2                                         '-LCD Minute
Dim Sek As String * 2                                       '-LCD Sekunde
Dim Ast As String * 2                                       '-LCD Alarm Stunde
Dim Amin As String * 2                                      '-LCD Alarm Minute
Dim Lcd_bel As Word                                         '-LCD Beleuchtung bei demerung AN oder AUS
Dim Lcd_string As String * 2

Sekunde = 0
Minute = 0
Stunde = 0
A = 1                                                       'A Variable
Sreg.7 = 1                                                  '-Global Interrupt
Do
Led = 0
'-----Alarm Ein oder Ausschalten-----
If Alarm_an_aus = 0 Then
If A = 1 Then
A = 0
Else
A = 1
End If
End If

Gosub Lcd_uhr
   If Sekunde > 59 Then Incr Minute
   If Sekunde > 59 Then Sekunde = 0
   If Minute > 59 Then Incr Stunde
   If Minute > 59 Then Minute = 0
   If Stunde > 23 Then Stunde = 0
   If Aminute > 59 Then Incr Astunde
   If Aminute > 59 Then Aminute = 0
   If Astunde > 23 Then Astunde = 0
'-----LCD-Beleuchtung---ansteuern
Lcd_bel = Getadc(0)                                         '-Foto Element an PC.0 10bit
   If Lcd_bel => 512 Then Set Lcd_licht                     '-Beleuchtung Einschaltem
   If Lcd_bel <= 512 Then Reset Lcd_licht                   '-Beileuchtung Ausschalten

Loop

End

Lcd_uhr:
'-----Sting---Format
 S = Str(stunde)
 S = Format(s , "00")
 M = Str(minute)
 M = Format(m , "00")
 Sek = Str(sekunde)
 Sek = Format(sek , "00")
 Ast = Str(astunde)
 Ast = Format(ast , "00")
 Amin = Str(aminute)
 Amin = Format(amin , "00")
 Lcd_string = Str(lcd_bel)
 Lcd_string = Format(lcd_string , "00")
'-----LCD Linie 2 Alarm
  Locate 2 , 15
  Lcd Lcd_string
  Locate 2 , 12
  Lcd Amin                                                  'Amin=Aminute
  Locate 2 , 11
  Lcd ":"
  Locate 2 , 9
  Lcd Ast                                                   'Ast=Astunde
  Locate 2 , 7
  Lcd "<"
  Locate 2 , 1
  Lcd ">"
  Waitms 50
'-----LCD Linie 1 Uhrzeit
  Locate 1 , 15
  Lcd Sek                                                   'Sek=Sekunde
  Locate 1 , 14
  Lcd ":"
  Locate 1 , 12
  Lcd M                                                     'M=Minute
  Locate 1 , 11
  Lcd ":"
  Locate 1 , 9
  Lcd S                                                     'S=Stunde
  Locate 1 , 3
  Lcd "UHR"
  Waitms 50
'-----Weker---Einstellen
If A = 0 Then
If Stunde_plus = 0 And Minute_plus = 0 Then                 'Werend Alarm=AN und Stunde_plus,Minute_Plus=0 dann Alarm auf NULL
   Waitms 50
   Astunde = 0
   Aminute = 0
Elseif Minute_plus = 0 Then                                 'Werend Alarm=AN und Minute_plus=0 dann Aminute +1
   Waitms 50
   Incr Aminute
Elseif Stunde_plus = 0 Then                                 'Werend Alarm=AN und Stunde_plus=0 dann Astunde +1
   Waitms 50
   Incr Astunde
End If
End If
'-----Alarm---Ausleusen
If A = 0 Then
If S = Ast And M > Amin Then                                'Werend Alarm=AN und Uhr>Alarm dann Alarm-Minutu +3min
   Aminute = Minute + 3
Else
If S = Ast And M = Amin Then                                ' Gosub Alarm                    'Werend Alarm=AN und Uhr=Alarm dann Sirene
   Led = 0
'   Toggle Speaker
Sound Speaker , 65 , 1274                                   'C2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 87 , 954                                    'F2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 98 , 850                                    'G2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 87 , 954                                    'F2(1/16)
Sound Speaker , 117 , 715                                   'Ais2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 110 , 758                                   'A2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 98 , 850                                    'G2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 110 , 758                                   'A2(1/16)
Sound Speaker , 87 , 954                                    'F2(1/16)
Waitms 2
   Led = 1
End If
End If
End If
 '----->Alarm< im Display wenn Alarm=AN
If A = 0 Then
   Locate 2 , 2
   Lcd "ALARM"
Else
   Locate 2 , 2
   Lcd "     "
End If
 '-----Uhrzeit---Einstellen
If A = 1 Then
If Stunde_plus = 0 And Minute_plus = 0 Then
   Waitms 50
   Stunde = 0
   Minute = 0
   Sekunde = 0
Elseif Minute_plus = 0 Then
   Waitms 50
   Incr Minute
Elseif Stunde_plus = 0 Then
   Waitms 50
   Incr Stunde
End If
End If

Return
Takt:
 Incr Sekunde
Return
 

Anhänge

  • DSC07703.jpg
    DSC07703.jpg
    238,6 KB · Aufrufe: 29
Hallo Sucharik!

Ich kann mir vorstellen, dass es Anderen vielleicht genauso geht wie mir.....
Bei was genau sollen wir dir denn helfen? :hmmmm:

Wie meinst du den Satz denn:
Nur mit dem CODE bin mir nicht ganz sicher!
denn es gibt bestimmt Regeln in der Reihenfolge die ich noch nicht kenne.


Natürlich wirst du als Anfänger noch eine Menge lernen müssen und diverse Aha-Effekte musst du auch erst noch erleben, aber die Reihenfolge des Programmablaufes richtet sich immer nach der Logik.
Wenn du gegen die Logik etwas programmierst, dann wird das Ergebnis nicht wie gedacht ausgeführt bzw. aussehen.


Ich habe dein Programm mal ein wenig überflogen....
Es gibt so einige Stellen die ich in Angriff nehmen würde, aber ich sehe dein Programm ja auch aus etwas "erfahreneren" Augen. :wink:

Grundsätzlich finde ich dein HWSTACK, SWSTACK und vor allen Dingen deine FRAMESIZE ziemlich klein.
Die Werte solltest du auf jeden Fall erhöhen!

Dann frage ich mich, warum du für einen LDR den ganzen Apparat des ADC`s anwerfen musst?
Zumal du hinterher lediglich prüfen möchtest, ob der Wert größer oder kleiner 512 ist!
Schau dir doch mal den Befehl GETRC in der Hilfe an.
Das sollte für deinen Anwendungsfall doch locker reichen!
Außerdem solltest du eine Schalthysterese einbauen.... z.B. > 650 = Hell und < 450 = Dunkel
Es könnte sonst passieren, dass bei langsam einsetzender Dämmerung du eine bestimmte Zeit einen Flackereffekt bekommst.
Tja und bei uns setzt die Dämmerung immer ganz langsam ein. :wink:
Das Gleiche passiert dir aber auch am Morgen, wenn es wieder heller wird.


Es gibt noch mehr Bereich im Programm die du mal überdenken solltest....
Nur mal ein Beispiel:
Code:
   If Sekunde > 59 Then Incr Minute
   If Sekunde > 59 Then Sekunde = 0

   If Minute > 59 Then Incr Stunde
   If Minute > 59 Then Minute = 0

   If Stunde > 23 Then Stunde = 0

Es ist aber dein "Lernprogramm" und von daher muss man darüber nicht diskutieren! :wink:


Wie eingangs aber schon erwähnt......
Bei was genau sollen wir dir jetzt helfen?

Grüße,
Cassio


EDIT:
PS: Und nimm bitte das:
Config Lcdbus = 4
heraus!
Das benötigst du bei dem Dipslay-Typ gar nicht!
 
Hallo sucharik,

also ich habe spontan die selben Sachen/Fehler gefunden wie Cassio...
Außerdem scheint mir ganz unten ein return zu viel zu sein!?

Was das die xxxstack angaben angeht: Typische Werte sind etwa 40

aber was du genau von uns willst is mir auch noch nicht ganz klar!

PS: Benutze nie Sonderzeichen oder Umlaute in Kommentaren oder auch Variabelnamen!

mfg
 
Außerdem scheint mir ganz unten ein return zu viel zu sein!?

Hallo AVRuser!

Die beiden RETURN`s am Ende passen schon.

Die Subroutine "Lcd_uhr" ist tatsächlich so lang. :wink:


Grüße,
Cassio
 
Hallo Cassio,

HWSTACK,SSTAK und FRAMESIZE werde ich erhöhen!

Mit Dämmerung langsam oder schnell :hmmmm: gar nicht daran gedacht. Danke für den Tipp.

Code:
If Sekunde > 59 Then Incr Minute
If Sekunde > 59 Then Sekunde = 0
Dabei die frage!
Was ist besser ( = 59) oder ( > 59) ? Und ob es rein auf die rechen Leistung sich auswirkt.

Ist es so besser ? Oder geht es noch einfacher?
Code:
If Sekunde = 59 Then
	Incr Minute
	Sekunde = 0
End If


Dann noch was!
Auslösen der Alarm wenn Alarm AN und zeiten gleich sind
SOUND SPEAKER
Code:
Sound Speaker , 65 , 1274                                   'C2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 87 , 954                                    'F2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 98 , 850                                    'G2(1/16)
Waitms 2
Wenn Ton abgespielt wird sind die anderen Funktionen wie Display, Tasten, ADC
Erstmal außer kraft .Und je länger Ton umso schlimmer wird es.

Kann man dagegen was tun?


Gruß
Sucharik
 
Die Subroutine "Lcd_uhr" ist tatsächlich so lang.
ups, habe nicht daran gedacht, dass jemand (fast) das ganze Prog in ne Sub packt!:D

mfg
 
Code:
If Sekunde > 59 Then Incr Minute
If Sekunde > 59 Then Sekunde = 0
Dabei die frage!
Was ist besser ( = 59) oder ( > 59) ? Und ob es rein auf die rechen Leistung sich auswirkt.

Ist es so besser ? Oder geht es noch einfacher?
Code:
If Sekunde = 59 Then
	Incr Minute
	Sekunde = 0
End If
Ich würde es so machen wie im zweiten Beispiel weil du dann nur einen Vergleich machen mußt. Das spart Rechenzeit. Außerdem fängst du dir kein Race-Condition ein wenn durch eine Interruptroutine zwischendurch was abgeprüft oder geändert wird. Stell dir mal vor der Interrupt schlägt beim ersten Beispiel zwischen beiden Vergleichen zu ... Dann hast du zwar schon die neue Minute aber in den Sekunden immer noch 59 drinstehen ;) Also 59 Sekunden weiter wie die Wirklichkeit. Wenn dann aus der Interruptroutine zurückgekehrt wird dann werden die Sekunden durch den zweiten Vergleich auf 0 gebracht und du gehst in der Zeit wieder rückwärts. Also zB so ...
- 12:45:58
- 12:45:59
- 12:46:59
- 12:46:00
- 12:46:01
Wobei bei der zweiten Version auch Race-Conditions auftreten können. Das wird man da schwer umschiffen können.

Und ... das >59 ist besser weil du dann gleichzeitig Spezialfälle mit abfängst wo durch nen blöden Zufall mal 140 in den Sekunden stehen könnte.

Versuch den Test auf Gleichheit nur dann einzusetzen wenn es unbedingt sein muß. Mit größer/kleiner fängt man immer die ganzen Randfälle mit ab.

Im Prozessor wird das ganze dann folgendermaßen ausgeführt (nennt sich Compare).

- Von den Sekunden wird die 59 abgezogen.
- Wenn das Ergebnis Null ist dann waren beide Zahlen gleich (Zero-Flag gesetzt)
- Wenn das Ergebnis negativ ist dann waren die Sekunden <59 (Sign-Flag gesetzt)
- Wenn das Ergebnis positiv ist dann waren die Sekunden >59 (Weder Sign noch Zero gesetzt)

Es wird also nur subtrahiert und danach die Flags im Status-Register abgeprüft. In Assembler sieht man das dann genau so im Programm.

Gruß
Dino
 
Hallo Cassio,
Dann noch was!
Auslösen der Alarm wenn Alarm AN und zeiten gleich sind
SOUND SPEAKER
Code:
Sound Speaker , 65 , 1274                                   'C2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 87 , 954                                    'F2(1/16)
Waitms 2                                                    'P(1/16)
Sound Speaker , 98 , 850                                    'G2(1/16)
Waitms 2
Wenn Ton abgespielt wird sind die anderen Funktionen wie Display, Tasten, ADC
Erstmal außer kraft .Und je länger Ton umso schlimmer wird es.

Kann man dagegen was tun?


Gruß
Sucharik


Kann man dieses Problem umgehen?
 
Kann man dieses Problem umgehen?
Ja, kann man.

Programmier es mit 2 Timern.
Mit dem ersten erzeugst du den Ton (Stichwort PWM/Vorteiler/...)
Mit dem zweiten erzeugst du ein Zeitraster von zB 1ms (also jede 1ms einen Interrupt).
Dann kannst du die Interrupts in einer Variablen aufaddieren. Wenn eine entsprechende Anzahl (Zeit) abgelaufen ist wird der nächste Ton oder die nächste Pause gestartet und wieder die dauer des nächsten Tons/Pause als Vergleichswert benutzt. Ich hoffe ich hab das halbwegs rübergebracht.

Der Prozessor kann also in der Zwischenzeit in der Hauptschleife auf Tasten reagieren, Display-Ausgaben machen, ADC starten/auslesen, ... Er wird aber zB jede Millisekunde unterbrochen um diese "Zeitvariable" hochzuzählen, zu vergleichen und gegebenenfalls den nächsten Ton (PWM/Frequenz neu einstellen) oder die nächste Pause zu starten.

Die Lösung ist die Hardwareunterstützung und Interrupts.

Gruß
Dino
 
alternativ könntest Du auch die Reaktion auf die Taster in Interrupts packen - bei eher zeitaufwändigem LCD-Kram sollte man auch davon absehen.
ABER:
Du solltest Dir vor Augen führen, daß jedes "waitms 2" für den Controller (bei 20MHz Takt) 40000 Takte Däumchendrehen sind. Und "sound" enthält sicher weitere wait-Instruktionen. Insofern -> siehe Dino.
 
hallo! :)

schon mal darüber nachgedacht das ganze mit einer RTC (real time clock) zu realisieren?
ist mit Sicherheit einfacher ;)

am besten wäre das mit einem controller der intern eine rtc hat z.B. atmega16 dann ersparst du dir die ganze Sache mit dem I2C bus

lg macGyver
 
Hallo,

am besten wäre das mit einem controller der intern eine rtc hat z.B. atmega16 dann ersparst du dir die ganze Sache mit dem I2C bus
keiner der ATtiny/ATmega-Controller hat intern eine Echtzeituhr. Manche haben lediglich einen zweiten Oszillator der asynchron zum Systemtakt arbeiten kann und dann zB mit einem Uhrenquarz läuft. Der Rest der "internen RTC" ist dann die Software die du programmieren mußt ;)

Gruß
Dino
 
hi ;)

ja hast recht ich meinte nur den internen real time counter ;)

da braucht man halt noch einen externen uhrenquarz aber das ganze ist eigentlich ganz einfach zu programmieren ;)
ich denke das wäre für einen Wecker sogar besser geeignet.
ich habe selbst schon einmal so etwas ähnliches realisiert und war mit dem ergebnis sehr zufrieden :)
für meine Anwendung mit der RTC brauchte ich dann nur noch 2 variablen (Stunde, Minute) für die "Vergleichszeit" ->

if _hour = stunde and _min = minute then
'Piepton oder was auch immer
end if

wenn man will kann man natürlich auch noch die sekunden berücksichtigen aber wer stellt sich schon die sekunden bei einem wecker ein? :D

die uhrzeit wann du geweckt werden willst kannst du dann ganz simpel einstellen..

z.B.
if Pind.0 = 0 then
incr Minute
else if Pind.1 = 0 then
decr Minute
end if

ist natürlich nur ein beispiel... aber ich denke die rtc wäre für die anwendung ganz gut geeignet :)

der code von sucharik ist natürlich insofern nicht schlecht da man gerade als Anfänger lernt, was bei so einem wecker im hintergrund so abläuft :)

hoffe ich konnte helfen ;)

lg macgyver
 
Ob der Zeit-Timer jetzt über einen externen Uhrenquarz, oder aus dem µC-Takt abgeleitet wird, wurde noch nicht festgelegt.
Den 2ten Timer mit PWM zum erzeugen des "Pieptones". Dabei müssen für unterschiedliche Frequenzen unterschiedliche Prescaler und/oder unterschiedliche TOP-Werte (Stichwort CTC etc) gewählt werden. Die "Notendauer" muß halt aus dem Zeit-Timer generiert werden (Pausen natürlich auch).
So in etwa hätte ich Dino verstanden.
 
Den 2ten Timer mit PWM zum erzeugen des "Pieptones". Dabei müssen für unterschiedliche Frequenzen unterschiedliche Prescaler und/oder unterschiedliche TOP-Werte (Stichwort CTC etc) gewählt werden. Die "Notendauer" muß halt aus dem Zeit-Timer generiert werden (Pausen natürlich auch).
So in etwa hätte ich Dino verstanden.
Genau so hab ichs auch gemeint ;)

- der erste Timer erzeugt ein festes Zeitraster das man über eine Variable vervielfacht. Also zB 70 * 10ms für 700ms Dauer. Die 10ms ist dann die Zeit die der Timer für einen Durchlauf benötigt (bis zum Interrupt) und die 70 dann die aufaddierten Interrupts (Durchläufe)

- der zweite Timer wird bei einer Pause gestoppt (kein Ton) oder für einen Ton mit den entsprechenden Vorteilerwerten und Timerwerten gefüttert damit er selbstständig die gewünschte Frequenz erzeugt.

Damit ist dann die gesamte Tonerzeugung zum einem Großteil in Hardware abgebildet und belastet so gut wie kaum den restlichen Programmablauf.

Wenn man dann noch die Softclock von BASCOM verwenden will benötigt man noch einen dritten Timer (den mit dem TOSC dran). Damit wird die Auswahl der Controller allerdings schon etwas beschränkt (mindestens 3 Timer).
 
Hallo zusammen,:wavey:

da bin ich wieder, habe nun alles Mögliche ausprobiert um den Vorschlag von dino03
zu realisieren.:yes4:
Ja, kann man.
Programmier es mit 2 Timern.
Mit dem ersten erzeugst du den Ton (Stichwort PWM/Vorteiler/...)
Mit dem zweiten erzeugst du ein Zeitraster von zB 1ms (also jede 1ms einen Interrupt).

Aber natürlich erfolglos:fie:

Das Problem (Sound Speaker , 50 , 180) werde ich folgender maßen lösen
Habe noch zwei AT90S2313 als SMD rum liegen (oder AT90S8515 jede menge)
Also die ganze (Sound Speaker , 50 , 180) Geschichte lasse ich von dem
AT90S2313 ausführen so mit hat denn Atmega8 keinen Sound mehr im weg. Oder???:stupido:

schon mal darüber nachgedacht das ganze mit einer RTC (real time clock) zu realisieren?
Auch gute Idee! Danke:victory:
Exsterne Module wie RTC DCF77 EEPROMs
werde ich aber in meinen nächsten (Projekten / Lehrgängen ) näher ran ziehen.



Gruß
sucharik
 
Hi,
Auch gute Idee! Danke:victory:
Exsterne Module wie RTC DCF77 EEPROMs
werde ich aber in meinen nächsten (Projekten / Lehrgängen ) näher ran ziehen.
Ähhh ... wie willst du mit nem RTC-Chip einen Sound erzeugen ?
Das wär so als wenn deine Wanduhr neben der Zeit anzeigen noch Lapaloma pfeifen könnte ;)

Gruß
Dino
 
Hallo dino03

Hi,
Ähhh ... wie willst du mit nem RTC-Chip einen Sound erzeugen ?
Das wär so als wenn deine Wanduhr neben der Zeit anzeigen noch Lapaloma pfeifen könnte ;)
Gruß
Dino

:hmmmm:Habe ich das wirklich so machen wollen RTC-Chip zum Singen zu bringen!

Exsterne Module wie RTC DCF77 EEPROMs
werde ich aber in meinen nächsten (Projekten / Lehrgängen ) näher ran ziehen.

RTC werde ich mir besorgen und im nächsten Projekten/ Lehrgängen:stupido2:
an einen Atmega8 anschließen und rum experimentieren bis man an die Uhr-Zeit ran kommt.

Gruß
Sucharik
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)