<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Fjord &#187; C</title> <atom:link href="http://fjord.mrmuli.de/tag/c/feed/" rel="self" type="application/rss+xml" /><link>http://fjord.mrmuli.de</link> <description></description> <lastBuildDate>Thu, 05 May 2011 07:54:13 +0000</lastBuildDate> <language>de</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3</generator> <item><title>C auf dem Mac programieren</title><link>http://fjord.mrmuli.de/2010/07/c-auf-dem-mac-programieren/</link> <comments>http://fjord.mrmuli.de/2010/07/c-auf-dem-mac-programieren/#comments</comments> <pubDate>Mon, 12 Jul 2010 15:01:03 +0000</pubDate> <dc:creator>Muli</dc:creator> <category><![CDATA[Technik]]></category> <category><![CDATA[C]]></category> <category><![CDATA[mac]]></category> <category><![CDATA[OS X]]></category> <category><![CDATA[Xcode]]></category> <guid
isPermaLink="false">http://fjord.mrmuli.de/?p=542</guid> <description><![CDATA[Um f&#252;r die Programmierung eines kleinen Roboters an der Uni zu Hause ein bisschen vorzuarbeiten kam ich heute in die Verlegenheit C auf dem Mac programmieren zu wollen. Nachdem ich ein paar mal daneben gegoogelt hatte, sprang mich die doch recht einfache L&#246;sung quasi an. Nat&#252;rlich hie&#223; sie Xcode. Xcode kommt auf der OS X [...]]]></description> <content:encoded><![CDATA[<p><img
class="pic-left" src="http://fjord.mrmuli.de/wp-content/uploads/2010/07/xcode-terminal-project.jpg" alt="Xcode Terminal Project" border="0" width="300" height="257"/>Um f&#252;r die Programmierung eines kleinen Roboters an der Uni zu Hause ein bisschen vorzuarbeiten kam ich heute in die Verlegenheit C auf dem Mac programmieren zu wollen. Nachdem ich ein paar mal daneben gegoogelt hatte, sprang mich die doch recht einfache L&#246;sung quasi an.</p><p>Nat&#252;rlich hie&#223; sie Xcode.</p><p>Xcode kommt auf der OS X DVD mit und muss nachtr&#228;glich installiert werden. Darauf gehe ich hier nicht ein, da es wenig gibt, was einfacher zu googlen ist. &#214;ffnet man nun Xcode, braucht man nur noch den Projekttyp Application, den Untertyp "Command Line Tool" und als Sprache C zu w&#228;hlen und schon geht die Coderei los.</p><p>Ein wenig unschl&#252;ssig bin ich, ob man sich die Ergebnisse seines Gehackes auch direkt in Xcode anschauen kann (was bestimmt geht) und wenn ja wie. Mir reichte es per Terminal im Projektverzeichnis nach "/build/debug" zu wechseln und dort dann in Unix-manier mit "./Applicationsname" das Programm zu starten.</p><p>Auch wenn C auf dem Mac mehr kann, als auf dem Microcontroller war ich mit der Implementierung in C wesentlich n&#228;her am finalen Code, als Funktionen vorher grob in PHP zu schreiben und dann umzur&#246;deln.</p><p>Plan f&#252;r die Zukunft ist es auf jeden Fall mal eine nicht ganz so web-spezifische Skriptsprache zu erlernen. Im Moment w&#252;rde ich mich ja auf Ruby st&#252;rzen, wenn nicht noch genug Zeug mit h&#246;herer Priorit&#228;t auf mich warten w&#252;rde.</p> ]]></content:encoded> <wfw:commentRss>http://fjord.mrmuli.de/2010/07/c-auf-dem-mac-programieren/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>AVR Butterfly und der Leopard (OS X 10.5.7)</title><link>http://fjord.mrmuli.de/2009/07/avr-butterfly-und-der-leopard-os-x-10-5-7/</link> <comments>http://fjord.mrmuli.de/2009/07/avr-butterfly-und-der-leopard-os-x-10-5-7/#comments</comments> <pubDate>Mon, 27 Jul 2009 10:20:47 +0000</pubDate> <dc:creator>Muli</dc:creator> <category><![CDATA[Technik]]></category> <category><![CDATA[10.5]]></category> <category><![CDATA[AVR]]></category> <category><![CDATA[AVR Butterfly]]></category> <category><![CDATA[avr-gcc]]></category> <category><![CDATA[Butterfly]]></category> <category><![CDATA[C]]></category> <category><![CDATA[kompilieren]]></category> <category><![CDATA[Leopard]]></category> <category><![CDATA[mac]]></category> <guid
isPermaLink="false">http://fjord.mrmuli.de/?p=494</guid> <description><![CDATA[Wie hier im Archiv nachzulesen ist, habe ich immer mal wieder halbherzige Versuche unternommen meinen sog. Microcontroller Evaluation Kit am Mac zu Programmieren. Auf gut deutsch: Ich habe ein AVR Butterfly auf meinem Schreibtisch liegen und krieg es ums verrecken nicht hin ihn sinnvoll mit kompiliertem Code zu f&#252;llen. Wobei das Bef&#252;llen nicht das Problem [...]]]></description> <content:encoded><![CDATA[<p>Wie hier im Archiv nachzulesen ist, habe ich immer mal wieder halbherzige Versuche unternommen meinen sog. Microcontroller Evaluation Kit am Mac zu Programmieren. Auf gut deutsch: Ich habe ein AVR Butterfly auf meinem Schreibtisch liegen und krieg es ums verrecken nicht hin ihn sinnvoll mit kompiliertem Code zu f&#252;llen. Wobei das Bef&#252;llen nicht das Problem darstellt. Zwischenzeitlich funktionierte alles sogar mal halbwegs, mit dem Problem, dass der Linker selbst gebauten Bibliotheken einbinden wollte. In jedem Fall hatte ich mit vielen unterschiedlich dummen Fehler zu tun und da ich im Netz auf viel Zeug, aber nicht auf das gesto&#223;en bin, was ich suchte, gibt es jetzt hier das einzig wahre Tutorial.</p><h4>Was man braucht:</h4><p>AVR-Butterfly, Serielles Kabel, USB auf Seriell Adapter, CrossPack for AVR® Development</p><h4>Serielles Kabel:</h4><p><img
class="pic-right" src="http://fjord.mrmuli.de/wp-content/uploads/2009/07/butterfly-serial-cable.jpg" alt="butterfly-serial-cable.jpg" border="0" width="350" height="232" /></p><p>Das serielle Kabel (ich habe meins von einer alten Maus abgeschnitten) muss der Grafik entsprechend angeschlossen werden. Im Falle der hoffentlich standardisierten Beschriftung meines Steckers kommt (wenn man das Butterfly-Modul so h&#228;lt, dass man die Beschriftung richtig herum vor sich hat) Pin5 des Steckers an den unteren der 3 Pins auf dem Modul, Pin 2 an den Mittleren und Pin 3 an den oberen.</p><h4>USB auf Seriell Adapter:</h4><p><img
class="pic-left" src="http://fjord.mrmuli.de/wp-content/uploads/2009/07/USB2Serial.jpg" alt="USB2Serial.jpg" border="0" width="326" height="322"/>Hier hatte ich Gl&#252;ck, dass der Adapter, der damals f&#252;r einen PC gekauft wurde, am Mac funktionierte. Da die "Adresse" des Adapters im Makefile angegeben werden muss, ist es unabdingbar sie herauszufinden, dies geschah in meinem Fall &#252;ber die Kommandozeile/das Terminal. Mit</p><pre>ls /dev</pre><p>bekommt man den Inhalt des Devices-Ordners zu sehen und hier sollte der Adapter nach installation der Treiber oder evtl. auch einfach so auftauchen. In meinem Fall setzt der Name des Ger&#228;tes sich zusammen aus tty, einer Unix spezifischen Kennung, PL2303, welches der Typbezeichnung des Adapters entspricht und einer Zufallszahl, die sich bei jedem an und abstecken des Teils &#228;ndert.</p><h4><a
href="http://www.obdev.at/products/crosspack/download.html">CrossPack for AVR® Development</a>:</h4><p>Vormals hies das Projekt AVR® MacPack, wurde aber aus Lizenzgr&#252;nden umbenannt. Nichts desto trotz, holt man sich hiermit alles auf den Mac, was man braucht, um den Code zu kompilieren und auf das Modul zu schieben. Die Dateien werden in</p><pre>/usr/local/CrossPack-AVR-"Datum der aktuellen Version"</pre><p>abgelegt. Um sp&#228;ter sinnvolle updaten zuk&#246;nnen, gibt es das Verzeichnis auch ohne den Datumszusatz, wo dann Links auf die benutzen Dateien liegen, so dass die Systempfade bei jeder Installation erhalten bleiben und nur die Links auf die aktuelle Installation umgebogen werden. Eigentlich k&#246;nnte der Ort der Files auch egal sein, denn da avr-gcc und avr-dude in den Systempfad eingetragen werden, funktionieren die Kommandos direkt, ohne ins Verzeichnis gehen zu m&#252;ssen. Es befindet sich dort aber der Ordner</p><pre> /usr/local/CrossPack-AVR/manual</pre><p>hier liegen einige HTML-Files, die mehr oder minder Hilfreich sind. In jedem Fall ist die Installation des Pakets ein Kinderspiel (pkg-Installer) und falls man jetzt noch wei&#223;, wie der USB auf Seriell Adapter hei&#223;t, ist der Rest quasi ein Kinderspiel.</p><h4>Ran an den Speck:</h4><p>Ich habe <a
href="http://fjord.mrmuli.de/wp-content/uploads/2009/07/butterfly.zip" title="butterfly.zip">hier</a> mal alles an Dateien zur Verf&#252;gung gestellt, was f&#252;r ein kleines Beispielprogramm notwendig ist. Das ganze wurde im Rahmen eines Projektes an der Uni genutzt und besteht, aus 2 makefiles (makefile.avr und makefile). In makefile muss selbst noch ein bisschen Hand angelegt werden, denn hier muss an entsprechender Stelle der USB nach Seriell Adapter eingetragen werden (makefile ist gut kommentiert und die Stelle nicht zu verfehlen). Neben dem eigentlichen Programm in der main.c ist auch mit butterfly.h und butterfly.c gleich eine Bibliothek mit eingebunden.</p><p>Die vorbereiteten Dateien werden in einem Ordner verstaut und das Terminal ge&#246;ffnet. Hier wechselt ihr in das entsprechende Verzeichnis und kompiliert alles mit</p><pre>make all</pre><p><img
class="pic-right" src="http://fjord.mrmuli.de/wp-content/uploads/2009/07/avrdude-fin.jpg" alt="avrdude-fin.jpg" border="0" width="471" height="159" /><br
/> An dieser Stelle hatte ich den Fehler gemacht den Anweisungen in der Doku vom CrossPack zu folgen, die nicht wirklich zum Ziel f&#252;hrte. Nach dem Kompilieren wuseln ungez&#228;hlte Dateien im Ordner herum. Das eigentliche Produkt ist die main.hex, die nun mit AVR-Dude auf das Modul geflasht wird.</p><p>Also Modul per Adapter und seriellem Kabel an den Rechner st&#246;pseln, die Stromzufuhr des Moduls kurz unterbrechen, um es zur&#252;ck zu setzen (Batterie kurz anheben), jetzt mit dem Befehl</p><pre>avrdude -p atmega169 -P /dev/tty.usbserial -c butterfly -V -U flash:w:main.hex</pre><p>das Flashen ansto&#223;en und den Joystick dr&#252;cken. Anstatt "/dev/tty.usbserial" sollte nat&#252;rlich die Adresse des eigenen USB auf Seriell Adapter im Befehl verwendet werden. Das Ergebnis sollte in der Kommandozeile schlie&#223;lich so aussehen, wie im Bild. Wenn AVR-Dude danke sagt, ist alles gut. Jetzt noch den Stick nach oben bewegen, um das Programm zu starten und das Modul sollte nervig piepen.</p><p>Damit w&#228;re der erste Schritt geschafft. Von jetzt an geht es um die "wirklichen" Probleme bei der Programmierung etc. Bei deren L&#246;sung w&#252;nsche ich viel Erfolg :)</p> ]]></content:encoded> <wfw:commentRss>http://fjord.mrmuli.de/2009/07/avr-butterfly-und-der-leopard-os-x-10-5-7/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
