Finde keinen Zugang zu PIC24 in "C"

Fragen, Tipps & Tricks zu unserem PIC-Projekt

Postby kerstin » Sun Oct 14, 2007 12:00 am

Hallo,

ich habe schon viele Programme für SPS mit AWL und Funktionsdiagrammen geschrieben. Dabei sind auch größere Projekte mit gut 200 Sensoren und Aktoren dabei, die heute in Produktionsmaschinen gute Dienste tun. SPS sind aber recht teuer. Schon längere Zeit versuche ich daher, Zugang zur Programmierung von PIC Microcontrollern zu bekommen. Bisher kann ich nur Visual BAsic und habe mich etwas in die Befehle von Ansi-C eingelesen. Aber es gelingt mir einfach nicht, letztere auf einem PIC unterzubringen.

Bei mir liegen schon diverse Platinen von Microchip herum, die mir nicht wirklich einen Zugang zu den Controllern eröffnet haben. Irgendwie erscheint es mir, als ob die Bücher über C und das C für PICs (obwohl Ansi-C) zwei total verschiedene Paar Schuhe sind. Zum Beispiel funktioniert schon das erste Programm, das in allen C-Kursen benutzt wird, nämlich das "Hallo World" Programm nicht. Zumindest auf den Microchip Boards läuft es nicht, geschweige denn weitere komplexere Beispiele aus den Ansi-C Lehrbüchern.

Nachdem nun der Artikel von Elektor vielversprechend erschien, hatte ich gedacht, diesmal sollte der Einstieg gelingen. Aber auch der Explorer verstaubt inzwischen bei mir. Eigentlich hatte ich alles, was der Artikel erwähnt, schon vorher auf der Microchip Seite gefunden. In Wirklichkeit ist also der Artikel keine Einführung, sondern nur ein Wegweiser, wo man was finden kann. Er hilft also nur bei den einfachen Problemen, die eigentlich kaum welche sind. Bei den wirklichen Problemen hilft er keineswegs weiter. Denn man steht mit den überkandidelten und keineswegs für Anfänger geeigneten Beispielen von der Microchip Homepage jetzt doch wieder allein da.

Den so heftig angepriesenen Download von der Microchip Webseminarseite kannte ich auch schon. Der Elektor Artikel hat mir keinesfalls geholfen, ihn zu verstehen. Braucht er ja auch nicht, denn natürlich haben wir alle einen englisch muttersprachlichen NAchbarn, mit dem wir jeden Tag aufs Heftigste kommunizieren. An den Bildern kann man aber erkennen, dass dieser Artikel überhaupt nicht weiterhilft. Er gibt nur einen groben Überblick über die Controller der PIC24er Serie und die Developement Tools (mit den überkandidelten Beispielen). Also wiederum nur das, was man schon lange weiß. Irgendwie erscheint mir das Ganze Developement- Zeugs von Microhip für solche gemacht zu sein, die sich schon mit anderen Microcontrollern auskennen und jetzt wechseln sollen. Für solche, die mit Microchip starten, wird zwar Anfängerhilfestellung suggeriert. Nachdem man aber das Zeugs gekauft hat, merkt man, dass die Beispiele ausgewachsene Projekte mit Hunderte von Zeilen Text sind, über die sich kein wirklicher Anfänger Zugang zu den Controllern verschaffen kann.

Solche Fragen, wie folgende werden nicht behandelt. Zumindest habe ich sie in dem Homepage Molloch auf keiner "Getting Started" Seite finden können: Wie zum Beispiel sieht in "C" das Grundgerüst zweier Interrupts in C aus, und zwar der Teil im Initialisierungsteil, in der Hauptprogrammschleife und der Beginn und das Ende der beiden Interrupts selbst? Wie bestimme ich dann, welcher Interrupt der priorisierte ist? Oder wie sieht der Beginn eines "C" Programmes aus, das mit dem internen Oszillator und dem Power up Timer laüft? Wie erzeuge ich einen mit der speziellen PIC Hardware einen PWM, dessen Duty/Pause Verhältnis ich mit einem Poti einstellen kann? Wie bringe ich ein "Hallo World" auf das LCD Display? Wie übertrage ich den Inhalt einer "C"-Variable über die diversen seriellen Schnittstellen (z.B. RS232, I2C, CAN) in eine "C" Variable eines anderen PICs und zurück? Wie bringe ich den Inhalt einer "C"-Variable über Schnittstellen (z.B. RS232, USB) in den PC und zurück, und zwar in eine Variable der gängigsten Programmiersprachen, wie Visual BAsic, Delphi etc? Das sind doch genau die Fragen, die sich einem bei der erstmaligen Inbetriebnahme eines Controllerfeatures stellen. Mit diesen hätte sich der Elektor Artikel wirklich sinnvoll hätte beschäftigen können.

Was für mich im Elektor Artikel tatsächlich neu war, war Proteus. Bei ihm erkannte ich ähnliche Bildchen, wie in meiner SPS Software wieder und hoffte, nun die Sprache C zunächst nicht mehr gebrauchen zu müssen, sondern über schaltplanähnliche "Bildchenprogrammierung" den Einstieg zu finden. Aber auch hier ließ der Elektorartikel den Leser vollkommen im Regen stehen, indem er ihn gleich mit einem hochmathematischen Signalprozessoranwendung konfrontiert, und diese nicht im geringsten kommentiert. Wenn ich so gut Englisch könnte, dass ich die Texte und Datenblätter von der Microchip und Proteus Homepage problemlos lesen und die Webseminare verstehen könnte, bräuchte ich Elektor nicht. Es ist daher absolut unverständlich, dass man damit allein im Regen stehen gelassen wird. Es wird im Artikel nicht einmal eine Erklärung gegeben, was Proteus eigentlich ist.

Die zuvor angekündigte Unterstützung durch Spezialisten von Microchip und Proteus fand weder im deutschen noch im englischen Board statt. Auch insgesamt scheint die äußerst geringe Anzahl der Postings auf eine Hilflosigkeit hinzuweisen, die so schlimm ist, dass man nicht einmal die Fragen kennt. Aber genau so eine erste Frage möchte ich weiter unten einmal zu stellen versuchen.

Warum fängt man denn nicht, um die komplette Entwicklungsumgebung erstmals mit einem von A bis Z selbstgeschriebenen Programm ans Laufen zu bekommen, mit einem ganz simplen Beispiel z.B. einer einfachen UND Verknüpfung in Deutsch erklärt an?

Und hier beginnt deann auch meine ganz konkrete Frage:

Ich möchte die Entwicklungsumgebung erstmals mit einem selbstgeschriebenen Programm ans Laufen bekommen. Hierzu hält man zweckmäßigerweise das PIC-Programm so einfach, dass dessen Funktion sofort verstanden wird und die Fehlermöglichkeiten minimal sind. Damit kann man sich ziemlich sicher sein, dass sich Fehlermeldungen oder Nichtfunktionalität nicht auf das PIC-Programm selbst beziehen. Daher möchte ich mit dem Controller eine UND Verknüpfung realisieren. Die zwei linken Tasten auf dem Explorer Board sollen die Eingänge darstellen und die linke LED den Ausgang. Also nur dann, wenn ich beide Tasten drücke, leuchtet die LED. Wie "male" ich mit dem Proteus das hierzu notwendige Schaltbild mit den beiden PIC-Eingängen, dem Und-GAtter und dem PIC-Ausgang. Wie simuliere ich es auf dem PC? Wie übersetzte ich das Schaltbild in C-Code und von dort über den Microhip Compiler und MPLAB in ein ladbares Hex-File, das man dann beispielsweise mit dem ICD2 in den Controller auf dem Explorer Board übertragen kann? Wie erstelle ich dasselbe Programm direkt in C. Wie schreibe ich die erforderlichen Linker Scripts. Und wie übersetze ich das in ein HEX File.

Und als zweites einfaches Bespiel: Wie bringe ich endlich das "Hello World" Programm für C-Anfänger auf dem Explorer Board zum Laufen? Der Microchip Compiler versteht laut Beschreibung Ansi C:

/* hello.c */
#include
void main(void)
{
printf("Hello, world!\n");
} /* end main */

Falls sich eine entsprechende Artikelreihe in der normalen Elektor Heftserie nicht realisieren läßt, würde ich mir für die Zukunft ein Sonderheft wünschen, in dem genau derselbe Themenkreis, nämlich Programmieren der DSPIC bzw. PIC24er in C und in "Bilder"-sprache (Proteus) AUF DEUTSCH!! soweit abgehandelt wird, dass man auf dieser Basis mit den Original-englischsprachigen Dokumenten weiterarbeiten kann.
kerstin
 
Posts: 7
Joined: Fri Jan 03, 2014 1:53 pm

Postby radiomann » Sun Oct 14, 2007 12:00 am

Hallo Kerstin,

bitte bedenke das Du auf dem PIC kein Betriebssystem wie zum Beispiel Windows hast. Deshalb kann z.B print nicht funktionieren. Woher soll C wissen wo das Display angeschlossen ist und welches es ist. Mam muss dann auch in C die Werte an den Ports vom PIC ausgeben. Es gibt ja verschiedene Displays die alle anders angesteuert werden. Vieleicht hilft das ein wenig weiter.
Also die Programmierung wie unter Windows geht hier nicht.

Grußß
Werner
radiomann
 
Posts: 74
Joined: Thu Jan 02, 2014 10:41 am

Postby kerstin » Sun Oct 14, 2007 12:00 am

Hallo Radiomann,

erstmal vielen Dank für Deine Antwort.

Leider ist alles, was ich über den PIC bisher weiß, nur theorethischer Natur aus den Microchip Dokumentationen, soweit ich diese in Englisch dekodieren konnte. Wie gesagt, ein selbstgeschriebenes Programm hat noch nie gelaufen.

Weil ich nichts Selbstgeschriebenes zum Laufen bekam, habe ich extra einmal 650 km mit dem Auto und einen Tag Urlaub auf mich genommen, um an einem Microchip Seminar teilzunehmen. Dort hat man uns gesagt, dass die dsPICs/ PIC24 viel besser zum Einstieg seien, da viele Restriktionen, die es auf den älteren PICS gab, hier wegfallen. Man könnte hier gleich mit C beginnen, ohne Assembler zu können. Die dsPICs wären hierfür wie geschaffen, da hier C teilweise schon in Hardware gegossen sei. Also habe ich meiner Platinensammlung auch noch Boards für die dsPIC/ PIC24 hinzugefügt.

Insgesamt war das Microchip Seminar für das kleine Geld recht nett. Man bekam dafür ein Board und gutes Essen und Trinken, soviel man wollte. Und das im pikfeinsten Hotel, so dass ich mir mit meinem Notebook im Rucksack zunächst etwas deplaziert vorkam. Beruhigt war ich aber dann, als selbst einer der Dozenten mit Rucksack antanzte. Die Microchip Leute waren sehr freundlich, aber gelernt hat man im Grunde eigentlich genau so wenig, wie hier in dem Elektor Artikel. Insofern ist der Artikel im Elektor mit dem Microchip Seminar zu vergleichen. Hört sich zunächst wahnsinnig gut an aber verwertbares Wissen kommt da kaum heraus. Mein Notebook hätte ich gar nicht mitzubringen brauchen.

Wie gesagt, sind die Beispiele für die Boards nicht zum Lernen zu gebrauchen, da die Demos vollkmmen überkandidelt sind. Also nahm ich mir Bücher über C und die im Internet reichlich vorhandenen Einführungen. Aber so ziemlich alle beginnen mit dem Hello World Programm. Dieses aber auch die weiteren Beispiele laufen aber auf den Microchip Boards nicht, obwohl der Compiler angeblich Ansi-C kann. Von Microchip und auch auf den Büchermarkt gibt es keine Einführungsliteratur für C auf den dsPICs. Die Demos sind viel zu schwer zu verstehen.

Wenn man einem Forum fragt, das sich mit ANSI-C beschäftigt, wie man einfache Programme zum Laufen bekommt, dann bekommt man zur Antwort, dass die einfachen Lernprogramme wie "Hallo-World" auf den Bords laufen müssten, wenn sich der Compiler Ansi-C kompatibel schimpfe. Print ist in der Ansi-C Norm festgelegt und habe daher mit solch einem Compiler und dem Board zu laufen. Diese Antwort habe ich nicht nur einmal, sondern überall, wo ich gefragt habe bekommen. Ohne Print funktionieren aber sämtliche Beispiele in Ansi-C Einführungskursen nicht. Da hier vor Ort so etwas nicht angeboten wird, habe ich auch bei weiter entfernten Volkshochschulen angefragt, die C Kurse anbieten. Ich hätte dann eben dafür auch eine Woche meines Jahresurlaubs geopfert. Zweimal bin ich da bis zum Dozent vorgedrungen, denn nur dieser konnte die Frage beantworten. Beide Male bekam ich die Antwort, dass ein C-Kurs ohne eine funktionierende Print Anweisung schlichtweg unmöglich sei. Daher bekomme ich auch das Gefühl nicht los, dass das Microchip C in Wirklichkeit ein anderes C ist, denn keine Antwort, die man in Ansi C Foren oder sonstwo bekommt, passt hier.

Wenn also schon die einfachsten Beispiele aus den Ansi-C Lehrbüchern nicht auf den Microchip Controllern laufen und die Microchip Boards keine wirklichen Lernbeispiele bereitstellen und es auf dem Büchermarkt kein einziges Buch, keinen Elektor Artikel und kein Sonderheft für C auf den dsPICs gibt (im Idealfall mit einem Microchip Board arbeitend), wie soll man dann bitteschön das Microchip-C lernen?
kerstin
 
Posts: 7
Joined: Fri Jan 03, 2014 1:53 pm

Postby radiomann » Sun Oct 14, 2007 12:00 am

Hallo Kerstin,

den printf Befehl kennt das C schon, aber es macht nicht die Ausgabe auf dem Display. Ich kenne mich nicht gut mit dem C aus weil ich alles in Assembler programmiere. Und ohne english lesen zu können ist das sicher nicht einfach.

Ich werde mal mein Board wiedersuchen und versuchen mit C etwas aufs Display zu schreiben.

Am besten Du schreibst mir eine E-Mail.

werner.stratmann@skydsl.de

Gruß
Werner
radiomann
 
Posts: 74
Joined: Thu Jan 02, 2014 10:41 am

Postby guthorst » Fri Oct 19, 2007 12:00 am

Hallo Kerstin,

irgendwie scheinst Du falsch an die Sache ranzugehen. Oder mit falschen Erwartungen.

Falls Du bisher mit Microcontrollern noch keine Erfahrung hast, sind die PIC-Controller wirklich sehr gut geeignet, sich darein einzuarbeiten. Aber dann mit einem einfachen PIC 16F... anfangen...

Wenn Du noch keine Erfahrung mit der Programmiersprache C hast, dann sammel die Erfahrung erst mal durch Programme für einen PC - und NICHT einen Microcontroller.

Wenn Du einen Controller programmieren willst, fange am besten in Assembler an. Du mußt zunächst den Controller selbst verstehen, hierzu hilft das Datenblatt. Oder erst mal eine allgemeine Einführung in Microcontroller.

Einen Text "Hallo Welt" auf einem Display auszugeben ist schon eine sehr komplexe Aufgabe, wie Radiomann schon beschrieben hat. Wedeer der Controller, noch die Programmiersprache "C" wissen, wohin der Text ausgegeben werden soll. Und weder der Controller noch die Programmiersprache "C" wissen, wie Dein Display zu initialisieren ist, bevor es überhaupt irgendwas anzeigen kann. Dieses mußt Du alles selbst definieren und programmieren.

Und auch eine Fragestellung, wie man ein variables Tastverhältnis an einen PWM-Ausgang ausgibt, dessen Wert man von einem am Analogeingang angeschlossenen Poti eingelesen hat, ist schon sehr komplex. Weißt Du, welche Register im Controller wie beschrieben werden müssen, um die betreffenden Pins als Ein- bzw. Ausgang zu definieren? Weißt Du, wie die CCP-Einheit beschrieben werden muß, um auf die Erzeugung von PWM einzustellen?

Vielleicht hilft es erst mal, ein Assembler-Programm zu schreiben, das an einem bestimmten Port eine LED leuchten läßt - oder diese blinken läßt. Letzteres entweder über eine Warteschleife, mittels Benutzung eines Timers, oder über PWM.

Wenn Du das geschafft und verstanden hast, dann ist das schon was. Dann kann man auch an komplexere Sachen rangehen wie die Kommunikation mit einem Display, die Ausgabe von Zeichen auf einem Display oder so.

Später - wenn einen die Umständliche Assembler-Programmierung nervt, kann man auf C oder Proteus umsteigen.

Gruß,
Guthorst
guthorst
 
Posts: 109
Joined: Fri Jan 03, 2014 1:53 pm

Postby kerstin » Sat Oct 20, 2007 12:00 am

Vielen Dank erstmal für Eure Antworten.

Ich bin jetzt doch etwas verwirrt. Denn Eure Aussagen widersprechen jetzt diametral dem, was auf dem Microhip Seminar gesagt wurde. Dort wurde dem Anfänger ausdrücklich davon abgeraten, mit weniger als dsPIC/PIC24 anzufangen, da diese viele Unzulänglichkeiten haben, die es bei den dsPIC nicht mehr gäbe, wie zum Beispiel das Bankswitching und zusammenzupfriemelnde Adressen. Damit müsse man sich dort herumschlagen, um es dann bei den dsPIC gleich wieder zu vergessen. Auf dem dsPIC ist nahezu der gesamte RAM Adressbereich linear nutzbar. Bei den dsPIC könne man sich auf das Wesentliche beschränken. Auch das Arbeiten unter C sei ungleich einfacher, als unter Assembler. So sei es mit Hilfe der im C30 vorhandenen Bibliotheken ein Leichtes, eine Aufgabe wie "PWM folgt Poti" darzustellen. Dies würde nur wenige C Anweisungen umfassen. Für jedes Hardware Modul gibt es Bibliotheksbefehle, auch für externe Standard LCD Displays!!! Ich habe die entsprechenden Module auch in der Bibliotheksbeschreibung schon gefunden und es hat den Anschein, als ob die Aussage der Microchip Leute tatsächlich stimmt. Da müssen allem Anschein nach beispielsweise nur wenige Parameter der PWM bzw des A/D Wandlers eingegeben werden. Um mehr braucht man sich nicht zu kümmern. Leider verstehe ich das Ganze nur zu 80% und Beispiele wären für die restlichen 20% wirklich hilfreich. Leider habe ich - zumindest im "Getting Started" Bereich - nicht ein einziges Beispiel für die Anwendung der Bibliotheken gefunden. Daher habe ich hier auch das "PWM folgt Poti" Problem als Beispiel genannt, weil ich ziemlich sicher bin, dass man es mit den Bibliotheken erschlagen kann. Wenn es tatsächlich möglich ist, dieses mit um die 10 Bibliotheksbefehlen zu bewältigen, frage ich mich, warum solch ein Beispiel nicht auf der Microchip Seite zu finden ist. Natürlich wäre ich auch mit anderen Bespielen zufrieden aber es gibt schlicht kein Einziges. Das spezielle Problem war auch nur als Beispiel gedacht.

Meine Probleme mit den Mikrochip Controllern entstehen auch zu einem großen Teil daraus, dass ich die internen Zustände in einem laufenden Programm nicht mitverfolgen kann. So wäre es für den Anfänger wirklich hilfreich, wenn es ein Beispiel der Benutzung der Bibliothek gäbe, um eine Anzeige auf dem LCD zu haben. Damit könnte man nämlich die inneren Zustände von Speicherzellen und Registern sichtbar machen, was im Simulator nur an einem Breakpoint möglich ist bzw überhaupt nicht mehr möglich, sobald man mit Interrupts arbeitet. Außerdem ist der Trace Buffer im Simulator nur grad mal wenige Sekunden. Das reicht nicht mal, um beispielsweise das Weiterlaufen einer Uhr darzustellen. Auch hier wäre eine Anzeige auf dem Display (also ein prinf-Ersatz) als "Entwicklungswerkzeug" sehr hilfreich. Ich denke da an ein Unterprogramm, das mehrere auswählbare Variable an einer jeweils vorgegebbaren Position des Displays anzeigt. Sehr sinnvoll wäre es dabei, ein zweites Display zu verwenden, da man das erste ja schon für die eigentliche Anwendung benötigt.

Das Beispiel von Microchip mit der blinkenden LED von Microchip habe ich schon durch. Mir geht es aber nicht um vorgefertigte Programme, sondern um selbstgeschriebene. Schon bei den PICplus Board für die kleinen PICs gibt es da schon Probleme, wenn man lediglich das Microchip Beispiel auf einem anderen Prozessor laufen lässt. Denn dann passt das Linker Script des anderen Controllers nicht mehr mit dem Beispiel Programm zusammen. Ich habe zwar die Stelle gefunden, die im von Microhip vorgegebenen Linker Script für den anderen Contoller geändert werden musste, aber das war eher ein Glückstreffer. Es geht mir hier aber um selbstgeschriebene Programme. Und genau das soll laut Microchip Seminar mit dsPIC und C wesentlich einfacher sein. Klippen, wie beispielsweise ein Linker Script, der dem Programm angepasst werden muss, seinen dort nur in Ausnahmefällen zu erwarten, die aber nur auf einem schon ziemlich professionellen Niveau vorkommen, der vom Standardweg ziemlich abweicht.

Gruß
Kerstin
kerstin
 
Posts: 7
Joined: Fri Jan 03, 2014 1:53 pm

Postby tengri » Fri Nov 16, 2007 12:00 am

Hallo Kerstin

Im Zusammenhang mit 'C' kommt es immer wieder zu einem folgenschweren Irrtum.
Der Sprachumfang von C umfasst nur sehr wenige Schlüsselworte - und printf ist definitiv keines davon.
In Sprachen wie BASIC gehört print zum Sprachumfang, kann also nicht einfach selbst geschrieben werden, in C kannst Du das.

Die Funktion printf entstammt einer der vielen mitgelieferten Bibliotheken, ohne die die Programmierung recht mühsam wäre - man müsste jedes Rad selbst erfinden.
Wenn ANSI-C definiert, dass printf in einer der Standardbibliotheken vorhanden sein muss, dann ist ein Compiler, der diesen Anforderungen genügt, eben ANSI-C konform.

Folgendes Codestück ergibt erstmal ein ganz normales Stück ausführbaren Binärcode.

#include
int main( int argc, char* argv[] ) {
printf( "Hello World.\n" );
return 0;
}

Und der Binärcode wäre dann in der Datei im COFF oder ELF/DWARF Format. Hätte man nun ein passendes Betriebssystem auf dem PIC laufen, könnte dieses diese Dateien ausführen.
Zu beachten ist dann aber, dass *nicht* das eigene Programm oder die Bibliotheksfunktion die Ausgabe erledigt, sondern das Betriebssystem - inclusive eines BIOS und des eventuell zu installierenden Treibers für das Ausgabegerät.

Beim Programmieren eine Microcontrollers sieht die Sache aber eben normalerweise so aus, dass das Binary *nativ* auf dem Prozessorkern laufen muss - und dann muß das Programm viel mehr erledigen, als das Übertragen einiger Zeichen an den Standardausgabekanal (nichts weiter macht printf).

Schaut man sich die Disassembly zu obigem Code an, findet man weitere Bibliotheksfunktionen, die durch printf verwendet werden - bis hin zu Funktionen aus der Mathebibliothek und Dateioperationen (insgesamt 25 Stück).

Satte 1926 Zeilen Assembler Code werden aus dem wenigen C Quelltext, das spricht für C als zu bevorzugende Sprache. (Ein guter Makroassembler wäre natürlich auch hilfreich.)

Um aber z.B. 'Hello World' auf dem Explorer-16 Board Display zu sehen, bräuchte man erstmal eine genau zu der Hardware passende Bibliothek!
Damit könnte dann auch ein printf wieder 'ganz einfach' funktionieren - oder auch scanf, um Tastatureingaben zu lesen (Tastatur = 4 Taster).

Im Explorer-16 Board Demo 1 von Elektor (Original von Microchip) hat man z.B. in Form der Dateien lcd.c und lcd.h ein paar nette Funktionen zum abstrakteren Ansprechen des LCD zur Verfügung.

Schaut man sich all die verwendeten Dateien von Demo 1 mal an, kann man sehen, dass nirgendwo Funktionen aus den C Bibliotheken zum Einsatz kommen - alles ist (zwangsläufig) sehr systemnah programmiert.

Man darf also den Umstand, dass es sich beim verwendeten Compiler um einen ANSI-C Compiler handelt, nicht überbewerten!

Apropos Sprache: nach meiner Erfahrung ist die beste verfügbare Literatur meistens zuerst in englischer Sprache verfügbar - wenn überhaupt in einer anderen Sprache. Oft lassen sich Sachverhalte mit der englischen Sprache auch etwas klarer ausdrücken. Daher mein Rat: lerne unbedingt diese Sprache.
Mir scheint, dass das im Moment der größte Hemmschuh für Dich ist.

Die Idee mit dem Elektor Sonderheft 'C-Programmierung mit Microcontrollern' finde ish gut - es dürfte aber nicht einfach nur eine Sammlung von Artikel aus den Monatsheften sein.

Zur Frage des zu wählenden Controllers:
Natürlich favorisiert man bei Microchip die jeweils aktuellsten Typen. Würdest Du heute fragen, würde man Dir sicherlich die neuen PIC32 Controller empfehlen.

Das Linker Script ... muss natürlich zum verwendeten Controller passen. (Freu' Dich einfach, dass Du die ganzen Daten darin nicht erst selbst zusammen tragen musst.)

Gruß
Andreas
tengri
 
Posts: 5
Joined: Fri Jan 03, 2014 1:47 pm

Postby kerstin » Fri Nov 16, 2007 12:00 am

Vielen Dank für Deine ausführlichen Erklärungen. Derart unterrichtet konnte ich jetzt etwas über den PIC32 herausfinden. Ich habe zwar nicht alles verstanden, aber Folgendes geht auf jeden Fall: Der PIC32 läuft auch auf dem Explorer. Er kann die printf Befehle auf der seriellen Schnittstelle vom PIC32 ausgeben. Schließt man die an einen zweiten PC an, so kann durch eingestreute printf Befehle beliebige Variablen im Programm sichtbar machen. Also Laptop zum Beobachten von Programm und MPLAB und der PC zum Beobachten des PIC. Das wäre echt ein Weg, wie man endlich das beschriebene Problem lösen kann. Man kann endlich einen "normalen" C-Kurs benutzen, der dann auch auf den PICs funktioniert und ist nicht mehr auf die schwierigen Beispiele von Microchip angewiesen. Das ist genial ) Und ohne Dich wäre ich nicht draufgekommen.
kerstin
 
Posts: 7
Joined: Fri Jan 03, 2014 1:53 pm

Postby guthorst » Sun Nov 18, 2007 12:00 am

Hallo Kerstin,

aber denke auch daran, daß Du diese RS232-Schnittstelle erst konfigurieren mußt: Baudrate, Anzahl Stopbits, Parity..., Interrupt Ja/Nein...
Und das Terminalprogramm am PC entsprechend eingestellt sein muß.

Gruß,
Guthorst
guthorst
 
Posts: 109
Joined: Fri Jan 03, 2014 1:53 pm

Postby kerstin » Mon Nov 19, 2007 12:00 am

Ja, im Prinzip war mir das klar. Allerdings hatte ich den Interrupt dabei nicht auf der Rechnung. Mir ist nicht ganz klar, was der da soll, und was ich dahingehend auf und mit dem PC abstimmen muss.
kerstin
 
Posts: 7
Joined: Fri Jan 03, 2014 1:53 pm

Next

Return to Explorer-16

Who is online

Users browsing this forum: No registered users and 1 guest