Forum: Mikrocontroller und Digitale Elektronik Controller in Delphi programmieren?


von Rainer (Gast)


Lesenswert?

Hi.

Bin neu auf dem Gebiet der Mikrocontroller und wollte mal Fragen ob ich
in Delphi Routinen schreiben kann um bestimmte Syntax zu automatisieren
(entprellen, timer, ADC, u.s.w). man müsste doch auch in delphi ein
Modul programmieren können um einen Controller über RS232 zu
programmieren. Schreibt mal was ihr denkt.

Danke schonmal

                   Rainer

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Es gibt Pascal-Compiler für AVR.

von Ingo Henze (Gast)


Lesenswert?

Ich denke, Rainer will nicht in Pascal den AVR programmieren, sondern
sich in Delphi ein Werkzeug schaffen, mit dem er den Code für häufig
wiederkehrende Standardaufgaben schnell erzeugen kann.
Sowas wie eine Codegenerator mit angeschlossenem Bootloader, oder so
ähnlich, oder nicht?

Gruß
Ingo

von Tobi (Gast)


Lesenswert?

delphi wäre für einen uC der kleineren sorte kaum zu schaffen, da durch
die objektorientierung sehr viel verwaltungs- und speicheraufwand für
die datenstrukturen entstehen würde. aber wie andreas schon geschrieben
hat gibts ja pascal für mikrocontroller, das ist ja noch ohne explizites
oop oder grafikorientierung

hier gibts eine übersicht über die üblichen hosprachen für uC:
http://www.mikrocontroller.net/wiki/HLL

hier gibts einen pascalcompiler z.b für avr's (demo kostenlos):
http://www.e-lab.de/

von Thorsten (Gast)


Lesenswert?

> um bestimmte Syntax zu automatisieren

Sicher kannst du das in Delphi programmieren, du kannst deiner Fantasie
freien Lauf lassen. Wenn ich das richtig verstanden habe, willst du also
so ne Art Wizard programmieren. Ist ne praktische Sache, man könnte z.
B. automatisch Code für die Initialisierung der UART erzeugen. Wenn man
nicht so häufig programmiert, muß man ja doch mal in das Datenblatt
schauen und mit dem Wizard könnte man Zeit sparen.

Thorsten

von Rainer (Gast)


Lesenswert?

Genau. will so ne Art Programmierbausteine erstellen um damit Code in
assembler zu erzeugen.

von Tobi (Gast)


Lesenswert?

klar geht das. aber das programmiren über rs232 kannst du dir sparen
selber zu bauen. dafür gibts schon massenweise tools, viele auch auf
der kommandozeile, also gut für dich einbaubar.

von Thorsten (Gast)


Lesenswert?

@Rainer

Ein interessantes Projekt, da muß aber viel Zeit investiert werden.
Schließlich gibts nicht nur ein AVR und wenn sowas angefangen wird,
sollte es schon möglich universell sein. Hätte interesse mich daran zu
beteiligen, nur leider werde ich dieses Jahr keine Zeit mehr dafür
finden.

Thorsten

von Florian (Gast)


Lesenswert?

Wenn man etwas "generell" machen will also möglichst
hardware-unabhängig sollte man das mit ner allgemeingehaltenen .c und
den Hardware zusätzen in .h machen.
So Sollte es zumindest möglich sein in einer Familie von uc ohne
Anpassungen in der .c zu Arbeiten.
Eine .h die dir dann delphi auf den prozessor angepasst erstellt könnte
ich mir durchaus vorstellen, wobei ich glaub das man da dann von Hand
schneller ist.
mfg Flo

von Tobi (Gast)


Lesenswert?

man könnte auch codemasken und beschreibungen in externen dateien
speichern und mit dem hauptprogramm dann nur noch auswerten und
ausfüllen. dann kann man ohne neukompilieren das ganze an neue/andere
controller anpassen. das wäre dann aber schon sehr universell

von Markus (Gast)


Lesenswert?

Hallo Rainer,

hast Du dir mal die kommerziellen IDEs (z.B. AVRco) so angeschaut? Da
wird man bei der Projekterstellung gefragt, welche CPU man mit welchem
Takt haben will und ob man einen Watchdog, Timerinterrupt, externes RAM
und dergleichen will/hat. Und dann kann man USART, PWM-Ausgänge,
A/D-Wandler, SPI, I2C usw. gleich passend konfigurieren lassen.

Fertige Funktionen für LCD (Text+Grafik), 7-Segment-Anzeigen,
incrementelle Decoder, Tastaturmatrix, Schrittmotoren, Sound, Netzwerk
(mit TCP/IP), Filesystem, Infrarot (RC5) senden+Empfangen, DCF77, RTC,
I/O-Expander und dergleichen mehr lassen sich bequem über einen Wizard
einstellen.

Das ist doch genau das, was Du auch machen willst?

Eines der Probleme dabei ist, daß man die Funktionen aufeinander
abtimmen muß. Manche Funktionen (z.B. das 1wire-Protokoll) darf man
nicht einfach willkürlich unterbrechen, d.h. wenn Du z.B. eine
gemultiplexte 7-Segment-Anzeige hast, dann stört der Timerinterrupt
erstmal die 1wire-Übertragung. Da muß man die beiden Funktionen
aufeinander abstimmen.

Insgesamt sicher ein nettes Projekt (hab' ich mir auch schon
überlegt), aber privat spricht da der Aufwand dagegen (Du willst ja
nicht hunderte verschiedene Schaltungen aufbauen) und beruflich gibts
sowas schon fertig zu kaufen.

Markus

von Thorsten (Gast)


Lesenswert?

> Fertige Funktionen für LCD (Text+Grafik), 7-Segment-Anzeigen,
> incrementelle Decoder, Tastaturmatrix, Schrittmotoren, Sound,
> Netzwerk (mit TCP/IP), Filesystem, Infrarot (RC5) senden+Empfangen, >
DCF77, RTC, I/O-Expander und dergleichen mehr lassen sich bequem
> über einen Wizard einstellen.

Also ich denke, zu weit sollte man nicht gehen. Dann könnte man auch
gleich MP3-Player mit VS1001 automatisch generieren. Aber eben
Standardsachen, die immer wieder vorkommen und wo tausend Bits zu
beachten sind, könnten automatisiert werden. Alles andere führt meiner
Meinung nach nur dazu, daß die dahintersteckende Hardware immer mehr in
Vergessenheit gerät. Gut, auf der anderen Seite wäre dann die
Weiterentwicklung des im Zitat erwähnten eine grafische
Programmiersprache: wie wärs mit GrafiBas ? Einfach nur Blöcke
zusammenschalten und fertig. Aber das gibts ja glaube ich auch schon.

Thorsten

von Tobi (Gast)


Lesenswert?

das hört sich so an als würdest du dir die zeit zurückwünschen als alles
aus einzelnen tranistoren u.ä aufgebaut wurde ;)
da benutz ich doch lieber einen fertigen uC bei dem ich auch nicht die
komplette hardware die dahinter steckt kenne/kennen will. ein paar
vereinfachungen schaden doch nie, solang es dadurch keine nachteile
gibt

von Thorsten (Gast)


Lesenswert?

Ein paar Vereinfachungen sind ja auch ok, nur ganze komplexe Blöcke
fertig zu übernehmen ist nicht mein Ding. Ich WILL verstehen, was
dahinter steckt. Schließlich gilt es ja auch, das Optimum aus einer
Schaltung herauszuholen und außerdem macht mir Optimierung Spass.
Beispiel: fertige IDE-Routine bei Bascom, die ist soooo (250kByte/s ?)
langsam. In C bekommt man mit einer einigermaßen sinnvollen
Programmierung (ohne Optimierung) locker das dreifache an
Geschwindigkeit heraus. Ich selbst habe die Routine nie ausprobiert
(geschweige denn Bascom), aber ich habe es hier im Forum gelesen und da
wird schon was wares dran sein.

> solang es dadurch keine nachteile gibt
Die Nachteile sind eben mangelhafte Performance und evtl. Probleme bei
der Ausführung.

Aber letztendlich muß das jeder für sich entscheiden, was er haben
will. Ich möchte jedenfalls die Routinen schon selbst programieren,
Standardkram wie gesagt kann automatisiert werden. Jedem das Seine :)

Thorsten


P.S.: Ich bemerke gerade die Bascomlastigkeit meines Postings, aber ist
doch ein typ. Beispiel. Bascom kann alles, aber halt irgendwie.

von Markus (Gast)


Lesenswert?

Hallo Thorsten,

Du hast natürlich völlig recht damit, daß viele Leute alles selber
machen wollen um es zu verstehen. Geht mir teilweise auch so.
Allerdings muß ich dazu den Code nicht unbedingt selber schreiben. Was
ich mir wünsche ist a) der Sourcecode der Funktionen und b) eine
Beschreibung der technischen Grundlagen, also z.B. bei DCF77 wie das
Protokoll aufgebaut ist und wie die Software die Dekodierung macht.
Sowas gibts bei den kommerziellen Lösungen nicht und bei den freien
Lösungen auch eher selten.

Zu Bascom: Als Anfänger war ich schon ziemlich froh, daß ich das LCD
und die serielle Schnittstelle ganz einfach mit zwei Zeilen Code
ansprechen konnte. Natürlich ist der Code nicht immer perfekt, aber
wenn der Sourcecode verfügbar (und dokumentiert) ist, dann kann man ihn
ja auch einfach verbessern.

Markus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.