IC Programmierung

Hallo,
ich bin noch Anfänder, was das Programmieren mit IC’s angeht.
Habe mir jetzt einen ISP gelötet und ein paar sachen wie atmega( gekauft.
Jetzt meine Frage:
Welche Programmiersprache sollte ich am besten nutzen?
ich habe vor mein IC per rs232 schnittstelle anzusteuern und das dann jenachdem was für ein befehl, der IC ein Relais ansteuert.

Danke schonmal im voraus

Hallo Engel94,

leider kann ich dir da nicht weiterhelfen. Ich bin jetzt auf Grund des Stichworts Programmieren vermittelt worden, habe aber kaum Erfahrung mit Hardwareprogrammierung. Während der Ausbildung haben wir einen Chip glaube ich in Assembler unter DOS mit einer IDE des Herstellers programmiert und ein LC-Display über LPT angesprochen, das aber dann in einer beliebigen Hochsprache.
Ich könnte mir jetzt vier Varianten vorstellen:

  1. Eine IDE des Chip-Herstellers für deinen PC
  2. Einen Treiber installieren, der die Assemblerbefehle für das Lesen und Schreiben auf den COM-Port über eine C-Schnittstelle anbietet. Die Schnittstelle kann dann über eine beliebige Hochsprache angesprochen werden. Hierbei ist zu beachten, dass für jedes Schreiben und Lesen zwischen User- und Kernel-Modus gewechselt wird, was sehr langsam ist.
  3. Schreibe einen eigenen Treiber, der typische Kombinationen von Port-Ausgaben oder -Eingaben zu Funktionen zusammenfasst, um die Anzahl der Modus-Wechsel zu reduzieren.
  4. Man kann ein Programm unter Windows NT und höher in den Kernel-Modus versetzen (weiß den Befehl aber nicht mehr), so dass es - wie unter DOS - vollen Zugriff auf die Ports hat. Das habe ich beim LC-Display gemacht, um die CPU zu entlasten, ist aber nicht die Englische Art.

Wenn die Entwicklung unter DOS/Win9x geschehen soll, um so besser. Was die Programmiersprache selbst angeht so fallen mir zuerst Pascal/Delphi und C ein. Es gibt aber z.B. auch eine Java-Schnittstelle für Unix: http://www.oracle.com/technetwork/java/index-jsp-141… oder .NET 2.0 Klassen: http://www.dreamincode.net/forums/topic/35775-serial….
Es gibt also kaum Einschränkungen. Wähle die Sprache, mit der du am vertrautesten bist oder eben Pascal/Delphi oder C. In beiden kann man bei Bedarf in Assembler programmieren und es dürfte eine Reihe von Tutorials geben.
Kostenlose plattformübergreifende Compiler + IDEs:

  • FreePascal + Lazarus
  • GCC + Code::Blocks

Wenn du bei deinen Anfragen noch das Host-Betriebssystem und die Architektur angibst (z.B. Windows 7 64-bit) kann man gezielter Antworten. So habe ich versucht möglichst viele Plattformen einzubeziehen.

tut mir leid, ich habe noch nie IC’s programmiert aber üblicherweise wird da c benutzt, soweit ich weiss. achtung: NICHT c++, sondern „nur“ c…d.h. keine objektorientierung und was weiss ich für kram. oder assembler, aber das ist ZU low-level…

weil mit c kann man direkt in den speicher schreiben/vom speicher lesen…ohne grosse umwege. man muss halt die adressen kennen.

beispiel:
int *myIcRegister; - mache pointer
myIcRegister=0x555; - setze den pointer auf die adresse 0x555
*myIcRegister=5; - schreibe den wert 5 an die adresse 0x555

d.h. nur mit dem sternchen da kannst ziemlich viel anstellen :wink:

das problem ist hier weniger die sprache als der compiler, der ja mit dem befehlssatz deines IC’s zurechtkommen muss. keine ahnung wo man DEN herkriegt.

such am besten mal tutorials für deinen spezifischen IC…falls es das gibt. zB. „how to program an MyIC-4456494“…ich denke da findest du schon was.

grüsse,
ben

Vielen Dank erstmal für die Antwort.
Das Befehle an demn IC senden mache ich per visual basic. Ok dann werde ich denke ich mal auf c umsteigen…
Habe auch noch was gutes dazu im Internet gefunden :smile:
achso mein Betribssystem ist Windows7(64bit)
Danke nochmal hat mir sehr weitergeholfen:smile:

Hey :smile: erstmal vielen dank für die Antwort…ja werde jetzt auch c nutzen…habe auch schon eine gute internetseite gefunden vielen dank nochmal :smile:

Also zur IC Prgrammierung kannst du Assembler nehmen wobei das Hardwarenahe ist und eine gewisse Erfahrung mit sich bringt weil man jede Routine selber schreiben muss. Da gibt es keine komplexen Befehle die mehrere Sachen miteinander verbinden.
Daher würde ich dir C empfehlen. Ist einfacher zu lernen aber ist eigentlich genauso wirksam wie Assembler

Hey:smile:
Danke erstmal für die antwort…
Habe heute schon das erste programm in C geschrieben(led blinkt):smile:
Eine frage habe ich noch:
Wie mache ich das ,wenn ich am pc in vb nen prog schreibe. Dass über die rs232 schnittstelle befehle gibt, der ic jenachdem was für ein befehl eine aktion ausführt…glaube dad geht über die UART?

Mfg

Habe gern geholfen, aber hoffentlich nicht in die Irre geführt. .NET 2.0 eignet sich wie gesagt auch dafür. Also kannst du Visual Basic .NET verwenden. Hier ist ein Beispiel: http://www.codeproject.com/KB/system/Serialport_COM…
Mich persönlich würde nur die Ladezeit beim ersten Start einer .NET-Anwendung stören, wenn ich bloß ein paar Kommandos über die serielle Schnittstelle absetzen möchte.
In C gibt es einiges mehr zu beachten. Speicherblöcke musst du selbst reservieren und freigeben, du kannst wenn du nicht aufpasst andere Variablen oder den Stack überschreiben (z.B. wenn du das fünfte Element eines vier Elemente langen Arrays beschreibst) und ein paar andere Dinge. Andererseits ist es im Beruf und für das Verständnis der Intel-Architektur nützlich sich mit C oder C++ auseinander zu setzen. Da du unter Windows arbeitest ist sicherlich MS Visual C++ die IDE der Wahl, was kommerzielle IDEs angeht.

Viel Glück/Spaß!