Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [µC] Meine kleine Uhr... (https://www.delphipraxis.net/130505-%5B%B5c%5D-meine-kleine-uhr.html)

Mithrandir 9. Mär 2009 18:12


[µC] Meine kleine Uhr...
 
Liste der Anhänge anzeigen (Anzahl: 4)
Warum in "Open-Source"? Naja, am Ende gibts den Quelltext und die HEX-Datei zum Brennen, und außerdem wurde die Software in Pascal geschrieben. ;)

Sodele,

ich möchte euch heute mal eins meiner Projekte vorstellen, das schon länger in meinem Kopf herumspukte und in der Zeit entstand, als ich hier nicht so aktiv war. Letzte Woche hab ich es dann erfolgreich zu Ende gebracht. Es handelt sich dabei um eine Uhr, die ihre Zeit im sogenannten Summencode darstellt.

Realisiert wurde der Aufbau auf einer 100*160mm großen Lochrasterplatine für die Logik und einer 100*100mm große Platine für die Anzeige. Die ganze Schaltung wird von einem ATMega8. Wer gerne etwas weiter in die Materie einsteigen möchte, findet hier das Datenblatt dazu:

ATMega8 Datenblatt [PDF, ~300 Seiten]

Die Tutorials auf mikrocontroller.net sind ebenfalls lesenswert, aber das nur am Rande. ;)

Außerdem befindet sich auf dem Board noch ein MAX7219. Dieser steuert die Anzeige der Uhr. Sehr praktischer Baustein, der einem viel Arbeit abnimmt, allerdings auch viel machen kann, wenn man nicht alles sauber abschirmt. :P Man sollte allerdings bedenken, dass der Baustein mit 6-8€ das Stück nicht grad billig ist.

Die Temperaturmessung übernimmt der DS1620, ebenfalls vom selben Hersteller.

Die Uhr hat folgende Funktionen:
  • Zeitanzeige inkl. Wochentag
  • Datumsanzeige
  • Temperaturanzeige
  • Durchlauf der ersten drei Modi im Intervall von 10 Sekunden
  • "Pattern"

Außerdem soll die Uhr noch einen DCF77-Empfänger verpasst bekommen.

Realisiert habe ich das Projekt mit dem PASCAL-Compiler von E-Lab Computers. Nein, die IDE ist nicht mit Delphi vergleichbar, aber die Sprache ist doch sehr gut an PASCAL angelehnt und war deshalb für mich recht schnell verständlich (ach...).

Nun genug gesabbelt, jetzt gibt es Bilder & Videos:

Entschuldigt die Qualität

Video auf Youtube, Teil I [~6:30 Minuten]
Video auf Youtube, Teil II [~1 Minute]


Und wenn ihr euch das alles angetan habt, dann hoffe ich, dass ihr den Ausflug in die Mikrocontroller-Welt mal genossen habt. Das war bestimmt nicht das letzte Projekt. ;)

Mithrandir 9. Mär 2009 18:13

Re: [µC] Meine kleine Uhr...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Und hier der versprochene Source & Schaltplan & das HEX-File...

3_of_8 9. Mär 2009 18:33

Re: [µC] Meine kleine Uhr...
 
Oha, ein Microcontroller-Programmierer.

Da hätte ich gleich mal eine Frage: Was hast du als Entwicklungsplatine verwendet und wieviel kostet das Teil? Und wie viel Lötaufwand hat man bei so einem Projekt wie deinem und was sind so die Gesamtkosten, wenn man alles zusammenrechnet?

himitsu 9. Mär 2009 18:47

Re: [µC] Meine kleine Uhr...
 
also bei BCD denk man eigentlich erstmal an einen 8-4-2-1-Code, aber das sieht mehr nach ... scheiße, mir fällt grad der Name nicht ein ... aber es ist mehr eine 1-aus-10-Variante und nicht das, was man im Allgemeinen als BCD ansieht.

was den Preis angeht ... vielleicht weniger als 15..20€ :gruebel:

Mithrandir 9. Mär 2009 18:56

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von 3_of_8
Oha, ein Microcontroller-Programmierer.

Da hätte ich gleich mal eine Frage: Was hast du als Entwicklungsplatine verwendet und wieviel kostet das Teil? Und wie viel Lötaufwand hat man bei so einem Projekt wie deinem und was sind so die Gesamtkosten, wenn man alles zusammenrechnet?

Hi 0815,

Entwicklungsplatine? Was ist das? :mrgreen:

Spaß beiseite. ;) Auf der Platine habe ich ja einen Anschluss für den ISP. Ich kann den Controller also zum Programmieren in der Schaltung lassen. Und Debug-Ausgaben kann ich mir auf dem LED-Panel anzeigen lassen. ;)

Lötaufwand ist... naja, sagen wir mal, dass das Board und die Matrix doch schon etwas Aufwand bedeuten. Wenn man gut ist, alles vorbereitet hat und nichts mehr ändern will daran, dann denke ich mal, dass so 3-4 Abende realistisch sind.

Gesamtkosten? Naja:
  • ATMega8: 1,30€
  • 64 LEDs, Low Current, 3mm: 3,20€
  • Platinen: ~3€
  • MAX7219: 5,90 €*
  • Kleinteile: ~5€
*der MAX7219 ist ein Muster, brauchte ich also nicht zahlen... ;)

Insgesamt also so gut 20€, wobei ich den Programmierer ja schon hatte. Die liegen aber auch so in diesem Bereich, es sei denn, man baut sich sowas selbst. Dafür gibt es zahlreiche Anleitungen im Web.


Gruß,
Daniel

//Edit: @Himitsu: Summencode. ;=)

mr_emre_d 9. Mär 2009 18:57

Re: [µC] Meine kleine Uhr...
 
[OT]
Nur so nebenbei:
Wird eigenltich die Summencode-Methode für das Komprimieren von Daten verwendet?

Code:
000000000    0 0 0 0
000000001    0 0 0 1
000000011    0 0 1 0
000000111    0 0 1 1
000001111    0 1 0 0
000011111    0 1 0 1
000111111    0 1 1 0
001111111    0 1 1 1
011111111    1 0 0 0
Damit könnte man Filesize um den Faktor 2 halbieren!

[/OT]

MfG

Mithrandir 9. Mär 2009 19:03

Re: [µC] Meine kleine Uhr...
 
mr_emre_d:

Wäre aber sehr ineffizient. Denn du hast ja nicht immer diesen von dir genannten Aufbau. Also würde man den Faktor 2 seeeehr selten bis gar nicht erreichen... ;)

mr_emre_d 9. Mär 2009 19:05

Re: [µC] Meine kleine Uhr...
 
ähm ok .. hast recht ..

ich komme gerade drauf, dass das ne dumme Idee war :stupid:

*never mind*

MfG

TurboMartin 9. Mär 2009 19:15

Re: [µC] Meine kleine Uhr...
 
Prima, dass Du dich geoutet hast, jetzt weiß ich ja, an wen ich mich hier wenden kann und muss nicht erst auswandern. :mrgreen:

Weißt Du, wie man das hier so umbaut, dass man es als Proxy nutzen kann? (ich weiß, bin leicht OT)

Mithrandir 9. Mär 2009 19:20

Re: [µC] Meine kleine Uhr...
 
Waaah... easy! :shock:

Kann ich dir leider nicht sagen, aber das Ding hat eine USB-Schnittstelle. Vielleicht kann man da was machen. ;)

Können wir jetzt vielleicht zurück zum Thema kommen? :mrgreen:

Wer Fragen zum ATMega o.ä hat, kann mir gerne ne PN schicken. ;)

Zitat:

Prima, dass Du dich geoutet hast, jetzt weiß ich ja, an wen ich mich hier wenden kann und muss nicht erst auswandern.
Matze hat davon auch Ahnung. :mrgreen:

himitsu 9. Mär 2009 19:47

Re: [µC] Meine kleine Uhr...
 
Zitat:

Gesamtkosten? Naja: ...
dann hab ich ja recht gut geschätzt X'D (obwohl ich da wohl mit etwas teureren LEDs geschätzt hatte)

Zitat:

//Edit: @Himitsu: Summencode. ;=)
ahhhh

Aber deiner Verdrahtung ... mein lehrmeister würde mich dafür fast umbringen :angel2:

Mithrandir 9. Mär 2009 20:00

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von himitsu
Aber deiner Verdrahtung ... mein lehrmeister würde mich dafür fast umbringen :angel2:

Naja,

Klingeldraht-Freiluft-Verdrahtung. :mrgreen: Wie würde sowas denn nach Lehrbuch aussehen? (Platine ätzen geht nicht, und isolierte Litze tu' ich mir nie wieder an... ;) )

himitsu 9. Mär 2009 20:09

Re: [µC] Meine kleine Uhr...
 
nach Lehrbuch ... blanker Draht direkt auf den Lötpunkten verlaufend ... nicht frei in der Luft schwebend.

Aber dort mit Leitungskreuzungen "schön" umzugehn ist 'ne Kunst für sich :roll:

Mithrandir 9. Mär 2009 20:39

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von himitsu
Aber dort mit Leitungskreuzungen "schön" umzugehn ist 'ne Kunst für sich :roll:

Hmm... Vielleicht bei meinem nächsten Projekt, dann versuche ich mal, darauf zu achten. Mir war nur wichtig, dass es endlich läuft.. :mrgreen:

blawen 9. Mär 2009 20:48

Re: [µC] Meine kleine Uhr...
 
Immer wieder gut sind Lochrasterplatinen mit streifenförmigen Leiterbahnen wie z.B. hier (2. Bild)

Mithrandir 9. Mär 2009 21:34

Re: [µC] Meine kleine Uhr...
 
Hi blawen,

Ja, für mein nächstes kleines Projekt das auf jeden Fall auf dem Zettel. Ich hatte nur leider schon Lochrasterplatinen, und wollte die nicht verkommen lassen.

Vielleicht auch nochmal für 3_of_8: Ein sehr schönes Board zum fairen Preis ist auch das hier:

http://www.pixelklecks.de/projekte/s...rdv2/index.php

Bekommst dort die Platine, Bauteile müsstest du selber kaufen und löten. Dafür bekommst du ne Buchsenleiste, mit der du an alle Ports kommst. Kann man n schönes Sandwichboard bauen. ;)

3_of_8 9. Mär 2009 22:32

Re: [µC] Meine kleine Uhr...
 
Hmm, ja, sieht ganz interessant aus, aber vorher sollte ich wohl noch etwas Löterfahrung sammeln und schauen, wo ich die Bauteile (jetzt nicht die Standards wie Kondensatoren, Oszillatoren, sondern eher sowas wie diese Pin-Dinger) herbekomme.

Mithrandir 9. Mär 2009 22:49

Re: [µC] Meine kleine Uhr...
 
Klar,

ein bisschen Erfahrung kann nicht schaden, aber die bekommst du eh mit der Zeit.

Die Bauteile bekommst du alle sehr günstig bei reichelt.de, auf der Seite vom Board steht eine Bestellliste mit den Nummern. Das ist der Vorteil, wenn man in Wilhelmshaven wohnt: reichelt ist in 10 Km Luftlinie.. ;)

generic 10. Mär 2009 10:05

Re: [µC] Meine kleine Uhr...
 
Hast du dir Gedanken über die Genauigkeit deine Uhr gemacht?

Wenn du den uC mit 8 MHZ taktest, entspricht das eine Zykluszeit von 0,000000125 Sekunden.
Nun könntest du einen üblichen Teiler nehmen der im Timer eingebaut ist.
Diese sind bei dem Mega8: 1,8,64,256,1024.
Bei einen 1024 Teiler kommst du somit auf einen Interrupt alle 0,000128 Sekunden.

Das müsste weiter runter skaliert werden um auf einen Sekundentakt zu kommen.

Jetzt könntest du den 16 Bit Counter bemühen und diesen bis 7812,5 laufen lassen um auf eine Sekunde zu kommen.
Allerdings das ,5 macht hier Probleme. Dann bleibt also nur 0,000128*7812=0,999936 oder 0,000128*7813=1,000064.

Am Tag haben wir 86400 Sekunden (24*60*60) somit ergibt sich Differenz von ca. +/- 5,5 Sekunden am Tag.

Mit einen Teiler von 256 bei einen 8MHz Quarz kommt das übrigens hin. Der Counter müsste dann aber bis 31250 laufen.


Hast du das in deiner Zeitroutine berücksichtigt oder eine fertige Lib genommen welche das berücksichtigt?
Benutzt du den Timer überhaupt oder hast du das anders gelöst?
Hab ich mich verrechnet?

generic 10. Mär 2009 10:06

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von Daniel G
Das ist der Vorteil, wenn man in Wilhelmshaven wohnt: reichelt ist in 10 Km Luftlinie.. ;)

Sind die nicht nach Sande ausgewandert?

Mithrandir 10. Mär 2009 14:16

Re: [µC] Meine kleine Uhr...
 
Hi generic,

Ja, die Gedanken habe ich mir schon bei einer anderen Uhr gemacht, die für meine Freundin war. Allerdings bietet die IDE, so ähnlich wie Delphi mit der VCL/Units, vorgefertigte Lösungen, u.a. eine RTC. Da gibt es einen Parameter, den man 100 Schritte in die positive und 100 Schritte in die negative Richtung setzen kann. So kann man evtl. Abweichungen ausbalancieren und eine recht genaue Uhr mit Bordmitteln bekommen.

Zitat:

Zitat von generic
Sind die nicht nach Sande ausgewandert?

Ja, sind sie, aber:

Entfernung Sande - Wilhelmshaven

Kann man quasi mit'm Zug oder Bus hinfahren und muss dann halt ein Stückchen laufen. ;) Da ich n Semesterticket habe, ist das immer noch besser als fast 6 € für den Versand zu löhnen.

Alloc 10. Mär 2009 16:58

Re: [µC] Meine kleine Uhr...
 
Hi,

zur Genauigkeit: Warum hast du da nicht einfach statt dem externen Quarz für den CPU-Takt den internen Clock und dafür nen Uhrenquarz mit 32768 Hz verwendet? Damit kommt man mit den Timern auf exakte 1 Hz ohne irgendwelche rechnereien =)

Ansonsten: Nette Uhr. Auch die Idee den USB-Stecker für eigene Zwecke zu missbrauchen find ich lustig ;D

Grüße,
Chris

Muetze1 10. Mär 2009 17:06

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von Alloc
zur Genauigkeit: Warum hast du da nicht einfach statt dem externen Quarz für den CPU-Takt den internen Clock und dafür nen Uhrenquarz mit 32768 Hz verwendet? Damit kommt man mit den Timern auf exakte 1 Hz ohne irgendwelche rechnereien =)

Wie willst du zwei Quarze realisieren? Also Schwingkreis aufbauen, TTL Signal Generierung und dass anschliessen oder direkt anstatt des 8 MHz Haupttaktes? Dies ist schliesslich nicht immer möglich. Ich habe bei meiner Steuerung ein 8 MHz Quarz zur Taktung genommen und 32 kHz wäre mir definitiv zu wenig für das Multiplexen meiner Anzeige (selbst gesteuert, ohne Maxim Unterstützung). Von daher habe ich das gleiche Problem mit der Zeit. Ich wollte mich heute bzw. morgen nochmal der Uhr-Ungenauigkeit widmen, da es eh eine neue Firmware gibt. Dein Lösungsansatz mit dem Austausch 8 MHz -> 32.768 kHz ist nicht gehbar, von daher bastle ich an einer kleinen Softwarelösung. Ein externer zweiter Takt von einem solchen Quarz ist durch die schon fertig aufgebaute Schaltung nicht ohne Aufwand möglich.

Alloc 10. Mär 2009 17:19

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von Muetze1
Wie willst du zwei Quarze realisieren?

Gar nicht ;)
Extern *nur* den 32 kHz Uhrenquartz, aber eben nur für den Timer2 (Asynchron-Betrieb). Der CPU-Takt kann auch aus dem internen Takt des uC genommen werden, beim Mega8 IIRC nur 1 MHz, aber das dürfte für ne Uhr bei weitem reichen (auch mit Multiplexing) ;)

Muetze1 10. Mär 2009 17:55

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von Alloc
Zitat:

Zitat von Muetze1
Wie willst du zwei Quarze realisieren?

Gar nicht ;)
Extern *nur* den 32 kHz Uhrenquartz, aber eben nur für den Timer2 (Asynchron-Betrieb). Der CPU-Takt kann auch aus dem internen Takt des uC genommen werden, beim Mega8 IIRC nur 1 MHz, aber das dürfte für ne Uhr bei weitem reichen (auch mit Multiplexing) ;)

Ich bezog mich auf mein Aqua Fan Control Projekt. Die 1 MHz interne Frequenz könnten reichen - aber nun ist es aufgebaut.

markusj 10. Mär 2009 18:07

Re: [µC] Meine kleine Uhr...
 
Der Aufwand, den externen Uhrenquarz anzuschließen sollte nicht sehr hoch sein ...
Und ein ATMega hat einen eingebauten 8Mhz Takt, der aber ab Werk durch 8 geteilt wird.

Aber da er sowieso einen DCF77-Empfänger einplant, sollte das ganze relativ egal sein, so ungenau ist kein Taktgeber ...

mfG
Markus

himitsu 10. Mär 2009 18:31

Re: [µC] Meine kleine Uhr...
 
Notfalls hat DCF77 einen Sekundentakt (liefert ja pro Sekunde ein Bit ... also 59 Bits insgesamt :stupid: )

Mithrandir 10. Mär 2009 18:42

Re: [µC] Meine kleine Uhr...
 
Hi,

Das mit dem Uhrenquarz hatte ich mir auch schon gedacht. Allerdings weiß ich nicht, wie die Implementation der RTC damit umgehen würde, und zum Selberimplementieren war ich... zu faul. :stupid:

Ich werde die Uhr mal einen Monat lang beobachten. Wenn die Abweichung mehr als 10 Sekunden beträgt, dann werde ich da nochmal was machen. Alle halbe Jahre muss die Uhr ja eh verstellt werden. :P

@himi: :stupid:

himitsu 10. Mär 2009 18:54

Re: [µC] Meine kleine Uhr...
 
verstellt? eines der Bits gibt Sommer-/Winterzeit an ... und sonst sie "richtige" Uhrzeit ^^

Zitat:

Zitat von Daniel G
@himi: :stupid:

was ist denn?
falls du die 59 meinst ... das Minutensignal (volle Minute) gibt es nicht, diese Sekunde wird kein Signal ausgestrahlt

Mithrandir 10. Mär 2009 19:01

Re: [µC] Meine kleine Uhr...
 
Ach so, das war Ernst... :gruebel:

Himi,

Schon als du nach dem Summencode gefragt hast, hatte ich den Eindruck du hast mein Eingangsposting nicht gelesen. :mrgreen:

Zitat:

Außerdem soll die Uhr noch einen DCF77-Empfänger verpasst bekommen.
Der ist noch nicht dran, und ich weiß noch nicht, ob und wann ich den anbau. Dass der DCF77 Sommerzeit und sogar Wetterinfos liefert, weiß ich. ;) Aber trotzdem danke. :mrgreen:

himitsu 10. Mär 2009 19:55

Re: [µC] Meine kleine Uhr...
 
nja, ich dachte, wenn du eh (eventuell) planst den anzubauen, dann könnte man den auch gleich mit in die Überlegungen einbeziehen :mrgreen:

Alloc 10. Mär 2009 20:25

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von Daniel G
Das mit dem Uhrenquarz hatte ich mir auch schon gedacht. Allerdings weiß ich nicht, wie die Implementation der RTC damit umgehen würde, und zum Selberimplementieren war ich... zu faul. :stupid:

Naja, das selberimplementieren ist grad mit Uhrenquarz ne Sache von wenigen Zeilen. Timer2 richtig einstellen, nen Timer-Interrupt schreiben der nen Flag setzt, in der Hauptschleife abfragen, Zeitberechnung durchführen, fertig ;)
(AFAIR konnte man doch den AVRco-RTC auf Timergesteuert einstellen? Lang lang ists her, dass ich mit AVRco gearbeitet hab ;) )

Mithrandir 10. Mär 2009 22:54

Re: [µC] Meine kleine Uhr...
 
Hmm, hab ich auch. Mal sehen, erstmal gucken, wie sich die kleine Ticktack im Feldtest schlägt. ;)

@himi: Joar, stümmt. :stupid:

himitsu 10. Mär 2009 23:19

Re: [µC] Meine kleine Uhr...
 
im Notfall gibt's ja auch noch derartige µP mit integrierter Uhr :angel2:

also sollten die schon recht genau arbeiten können?

Aber...

ich kenn mich mit dieser Sprahe nicht so aus, aber mir kommt es ast so vor, wenn du da (z.B. beim Senden an den MAX...) die Interputs kurz abschaltest?

Mithrandir 10. Mär 2009 23:24

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von himitsu
im Notfall gibt's ja auch noch derartige µP mit integrierter Uhr :angel2:

Ich hab hier noch 2 DS1337 (jaja, Scriptkiddies freuen sich.. :roll:) ;)

Zitat:

Aber...

ich kenn mich mit dieser Sprahe nicht so aus, aber mir kommt es ast so vor, wenn du da (z.B. beim Senden an den MAX...) die Interputs kurz abschaltest?
Interputs? Süß.. :mrgreen:

Ja, die Interrupts muss ich teilweise kurz abschalten. Der Interrupt wird von der RTC benutzt. Eigentlich dachte ich aber, ich würde nur beim Setzen der Zeit den Interrupt deaktivieren. Das ist vorgegeben vom Hersteller. Mal sehen... ;)

himitsu 10. Mär 2009 23:46

Re: [µC] Meine kleine Uhr...
 
Da doch dort das Clock-Signal dabei ist, sollte eine ganz kurze unterbrechung doch nicht viel ausmachen?

Aber wenn du die Uhr über einen Interrupt weiterschaltest, dann könnte da doch eventuell mal einiges ausfallen :gruebel:
Zitat:

Zitat von Daniel G
Interputs? Süß.. :mrgreen:

ich sollt vieleicht nebenbei weniger chatten und Urlaubsplanungen machen *überleg*
hoffentlich vermißt mich hier keiner, aber bin samstags in Leipzig und dann fahr ich über Berlin heim :stupid:

[add]
hey, den kleinen Timer-Chip kenn ich doch :shock: ... jahre ist's her, aber dennoch wiedererkannt :angel:

Mithrandir 11. Mär 2009 00:21

Re: [µC] Meine kleine Uhr...
 
Zitat:

Zitat von himitsu
Da doch dort das Clock-Signal dabei ist, sollte eine ganz kurze unterbrechung doch nicht viel ausmachen?

Aber wenn du die Uhr über einen Interrupt weiterschaltest, dann könnte da doch eventuell mal einiges ausfallen :gruebel:

Äh... hä?

Also, die RTC löst einen Interrupt aus, wenn eine Sekunde vergangen ist, um eine Variable zu setzen, die eben genau das signalisiert. Ohne Interrupt könnte ja theoretisch eine Sekunde verloren gehen, was bei mir aber eigentlich nie passiert. Es ist ja nur ein kleines Programm.

Oder hab ich dich falsch verstanden?

himitsu 11. Mär 2009 10:34

Re: [µC] Meine kleine Uhr...
 
neee, du schaltrest doch die Interrupts ab, wenn du was zu diesem MAXirgendwas sendest (glaub ich ... hab jetzt nicht nochmal reingeguckt).

dieserem dürfte es doch aber nichts ausmachen, wenn da mal ein Impuls etwas länger dauert, weil der Interrupt dazwischenkam.

Aber die interne Programm-Uhr könnte immer mal wieder etwas Zeit übersehn, wenn wärend der Interrupt aus ist ein Impuls reinkam.

Mithrandir 11. Mär 2009 13:02

Re: [µC] Meine kleine Uhr...
 
Hast recht,

Das fließt beim nächsten Update mit ein. Danke ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz