Hallo zusammen Ich wollte nachfragen, ob es möglich ist, von meinem C# Programm aus mein generierten C-Code zu kompilieren und diesen direkt auf meinen Mikrokontroller (Atmega 168 => mySmartControl MK2 16K) zu laden. Das Board hat einen USB Schnittstelle welche als virtueller COM-Port emuliert wird. Was ist dazu notwendig? Mit freundlichen Grüssen
Hallo Meier M. schrieb: > Hallo zusammen > > Ich wollte nachfragen, ob es möglich ist, von meinem C# Programm aus Das verstehe ich nicht ! > mein generierten C-Code zu kompilieren und diesen direkt auf meinen > Mikrokontroller (Atmega 168 => mySmartControl MK2 16K) zu laden. Das > Board hat einen USB Schnittstelle welche als virtueller COM-Port > emuliert wird. Was ist dazu notwendig? Stichwort: Bootloader. Aber ohne ISP Programmer wird man den nicht drauf bekommen.
Ich will einen Arbitrary Waveformgenerator basteln, welcher mit einigen kHz funktioniert. Dazu kann man über das C# Programm die Kurvenform auswählen (Sinus, Rechteck, Dreieck, Puls oder importierte Kurven)welche dann berechnet werden. Nach der Berechnung generiere ich das C-File mit den berechneten Kurvenpunkten, welches dann auf den Atmega 168 geladen werden sollen. Dazu muss das C-File zuerst kompiliert werden (AVR GCC) und danach möchte ich dieses hex-file hochladen aus dem C# Program. Das kompilieren sollte machbar sein, nur bin ich mir nicht ganz sicher wie ich nun aus dem C# Tool den Programmcode (HEX-File) hochladen kann. Brauche ich dazu ein drittprogramm welches dies für mich erledigt, oder kann ich das hex-file manuell über die serielle schnittstelle auf den Atmega 168 laden? (Wenn ja auf was muss man achten dass der Programmcode am rictigen Ort landet?)
Meier M. schrieb: > Brauche ich dazu > ein drittprogramm welches dies für mich erledigt, oder kann ich das > hex-file manuell über die serielle schnittstelle auf den Atmega 168 > laden? (Wenn ja auf was muss man achten dass der Programmcode am > rictigen Ort landet?) Wie schon im vorigen Post geschrieben, benutzt man dafür einen Bootloader. Allerdings solltest du dir mal grundlegende Gedanken über den Sinn und die Verwendung von Programmcode und Daten machen. Meier M. schrieb: > Nach der Berechnung generiere ich das C-File mit > den berechneten Kurvenpunkten, welches dann auf den Atmega 168 geladen > werden sollen. Das ist ziemlich unsinnig. Man brennt nicht für jede Funktion ein neues Programm auf den Controller. mfg.
Meier M. schrieb: > Ich will einen Arbitrary Waveformgenerator basteln, welcher mit einigen > kHz funktioniert. Dazu kann man über das C# Programm die Kurvenform > auswählen (Sinus, Rechteck, Dreieck, Puls oder importierte Kurven)welche > dann berechnet werden. Nach der Berechnung generiere ich das C-File mit > den berechneten Kurvenpunkten, welches dann auf den Atmega 168 geladen > werden sollen. > Dazu muss das C-File zuerst kompiliert werden (AVR GCC) und danach > möchte ich dieses hex-file hochladen aus dem C# Program. Das kompilieren > sollte machbar sein, nur bin ich mir nicht ganz sicher wie ich nun aus > dem C# Tool den Programmcode (HEX-File) hochladen kann. Brauche ich dazu > ein drittprogramm welches dies für mich erledigt, oder kann ich das > hex-file manuell über die serielle schnittstelle auf den Atmega 168 > laden? (Wenn ja auf was muss man achten dass der Programmcode am > rictigen Ort landet?) Du solltest das anders machen. Das Programm auf dem µC wird überhaupt nicht geändert, sondern enthält Code, welcher es erlaubt, die Datenpunkt deiner Kurve per RS232 an den µC zu senden. Dein C# Programm macht dann einfach eine serielle Schnittstelle auf, teilt dem µC darüber mit "Hier hast du eine neue Kurvenform", überträgt die Daten und das bereits im µC vorhandene Programm gibt die dann wieder. Auf die gleiche Art und Weise teilt dein C# Programm dem µC dann auch noch mit, mit welcher Frequenz er die Schwingung erzeugen soll. Du kaufst dir ja auch nicht, wegen jedem Mist ein neues Auto um damit nach Hause zu fahren und die Fische zu füttern, weil du das vergessen hast. Sondern du rufst zu Hause an und bittest deine Mutter/Vater/Schwester/Bruder/Ehefrau/Ehemann das für dich zu übernehmen. Das sich 2 Computer miteinander unterhalten und der eine Kommandos an den anderen schickt, ist das normalste von der Welt. Das können durchaus auch textuelle Kommandos sein, auch wenn sich das heute im Zeitalter von Klickibunti keiner mehr vorstellen kann, dass man früher Computer durch die Eingabe von Kommandos in eine Textkonsole gesteuert und bedient hat.
OK danke, werde ich so in Betracht ziehen ;). Kann ich dann die Daten in den Programflash schreiben (Immer natürlich an die gleiche Adresse, so dass das Program nicht überschrieben wird) oder muss dieser separat (EEPROM) gespeichert werden?
Nein... Nur wenn diese Daten dauerhaft erhalten bleiben sollen (also auch nach dem ausschalten), muss das ins EEPROM. Ins Flash kommt sowas garnicht. Du solltest das einfach ins RAM laden. Gruß Jonathan
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.