Hi,
ich denk der Betreff sagt bereits alles!?
Weiß jemand ob das möglich ist, In einem kleinem Projekt in MPLAB (zu
Testzwecken) kleinere Ausgaben in die Konsole, wie z.B. "Hello World" zu
tätigen?
Wär wirklich klasse, wenn mir jemand helfen könnte!
Denn ansonsten müsste ich ja erstma ne serielle Kommunikation einrichten
:-( und das weis ich noch weniger wie das gehen soll.
Also
Vielen Dank im Voraus
MfG
Christian
Also eigentlich soll ich mithilfe eines Testboards, welches vor mir
liegt, eine bereits vorhandenes FAT32 Dateisystem auf meinen PIC18F87j11
portieren.
Davon bin ich aber noch weit entfernt ;-)
Momentan gehts darum ein erstes kleines Projekt anzulegen, ein 3-Zeiler,
ein "Hello World" Projekt, bei dem ich dann halt eben eine Ausgabe /
Reaktion erzeugen kann.
Da dachte ich an die Konsole.
Sprich ist es möglich bei einem Ergebnis irgendeiner Art und sei es noch
so einfach, eine kurze Rückmeldung in die Konsole schreiben zu lassen.
Oder muss ich hierfür eine serielle Kommunikation mit dem PIC über
meinen FTDI-Chip und dem USB-Port meines PCs herstellen?
Hoff ich lieg jetzt nicht völlig daneben.
Hab es eben im Unterricht so kennengelernt. Da haben wir uns alles in
die Konsole ausgeben lassen =)
Danke
Gruß
Christian
Christian schrieb:> Da dachte ich an die Konsole.Welche "Konsole"? Als Windowsnutzer verstehe ich unter Konsole die
DOS- ähhh Verzeihung Win32-Konsole welche man mit Win+R + "cmd" + Enter
aufrufen kann.
> Oder muss ich hierfür eine serielle Kommunikation mit dem PIC über> meinen FTDI-Chip und dem USB-Port meines PCs herstellen?
Das wird wohl nötig sein. Ein virtueller COM-Port und irgendein
Terminalprogramm sind die einfachste Lösung zum debuggen.
Also wird das nicht so einfach funktionieren, wie in der Uni!
Also salop ausgedrückt: kein printf ?!
Sorry! Konsole / Terminal ist doch alles das selbe :-D
OK dann werd ich mich wohl etwas einlesen müssen, wenns so nich geht!?
Danke
Christian schrieb:> Also salop ausgedrückt: kein printf ?!
Kein printf, wohin sollte das auch "printen"?
Man kann sich natürlich ein printf basteln was die Daten per U(S?)ART
rausschiebt oder eine fertige Bibliothek nehmen welche genau das tut.
Aber back erstmal kleinere Brötchen:
putchar()
putstring()
Die beiden sind auf jeden Fall nötig, danach gibt es zwei Möglichkeiten:
putinteger()
puthex()
putbin()
put....
oder man bastelt sich direkt ein printf, wobei das eigentlich nur ein
Wrapper von vsfprintf (o.ä.) ist welcher - sofern vorhanden - eine Menge
Platz brauchen dürfte. printf von Grund auf selber bauen dürfte einiges
an Arbeit sein.
Wie bereits gesagt geht es nicht so einfach, da Dein Mikrocontroller
wahrscheinlich keine Konsole besitzt (Ausnahme: Wenn auf dem
Mikrocontroller ein Linux oder so laeuft, wovon ich jetzt einmal nicht
ausgehe).
PC-Programme koennen natuerlich auf die PC-Konsole schreiben;
Mikrocontroller koennen das (ebenfalls natuerlich) nicht so ohne
Weiteres, da sie ja ein separates System sind. Du kannst nun eine
Kommunikation zwischen beiden aufbauen, z. B. mit RS232 (oder serielle
Kommunikation ueber USB). Dann benoetigst Du eine Firmware, die den
Mikrocontroller dazu bringt, etwas auszugeben, und Du benoetigst ein
Windows-Programm, welches die Daten empfaengt und anzeigt.
Welche Hardware (z. B. LED, LCD-Display oder so) hast Du an Deinem
Mikrocontroller? Nehme doch diese. Lass z. B. die LED blinken; das ist
immer ein guter Start.
Patrick schrieb:> Lass z. B. die LED blinken; das ist immer ein guter Start.
Um einen µP bzw. ein Entwicklungsbord kennen zu lernen sicherlich, zum
Debuggen sollte man sich aber unbedingt eine funktionierende
RS232-Verbindung einrichten (Richtung µP-->PC reicht aus).
naja, bei der KEIL IDE geht das schon wenn man einen ARM/CORTEX-M3 und
JTAG hat. Bei MPLAB geht es auch irgendwie, hab es aber seit Jahren
nicht mehr benutzt. Aber natürlich nur im Simulator.
Hello World ->Guckst du hier:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2123¶m=en024284
in usart.h findest du folgendes:
char Read1USART (void);
void Write1USART ( char data);
void gets1USART ( char *buffer, unsigned char len);
void puts1USART ( char *data);
void putrs1USART ( const MEM_MODEL rom char *data);
void puts1USART() sollte als "Hello World" via Hyperterm auch gehen.
Aber natürlich must du deine Hardware bezüglich Osc.takt baudrate etc
anpassen. Irgendwo in einem Getting Startet habe ich mal ein Snippet
gesehen. Yep... ich bin mir right now sogar ziemlich sicher, es ist in
der Compileranleitung gesehen zu haben.
Danke Leute, für die vielen und schnellen Antworten.
Hatte dann gestern aber "leider" ;-) erstma Feierabend!
Gut. OK. Hatte dann wohl ne falsche Vorstellung von den ganzen
Zusammenhängen. Dachte, dass ja irgendwie im prinzip bereits ne
Verbindung von µC und PC über meinen Debugger (ICD 3) besteht.
Hardwaretechnisch hab ich sogar ziehmlich viele Komponenten am Board.
Fängt bei SDKart Slot und kapazitiven Tasten samt Drehrad an und endet
natürlich auch mit einem LCD Display auf.
Wobei, jetzt wo ihr das so sagt, eigentlich auch schnell eine LED an
einen der freien Ports gelötet wäre :-D
Dann werd ich mich wohl mal, so wie ich euch verstehe, zur seriellen
Kommunikation einlesen müssen.
@ttl: Ich hatte da auch ganz dunkel etwas im Hinterkopf, dass es wohl
auch mit MPLAB funktionieren müsste, aber wenns allerdings nur im
Simulator funktioniert, hilft mir das denke ich momentan nicht weiter.
Trotzdem danke!
Man von U(S)ART hab ich doch keine Ahnung!