Forum: Mikrocontroller und Digitale Elektronik cout für Mikrocontroller


von Katha K. (Gast)


Lesenswert?

Hallo Forum,

wie kann ich die "cout"-Funktion auf meinen Mikrocontroller (PIC16F1459)
umschreiben?
Ich habe von einem Bekannten ein Programm bekommen das dem Labor PC auch 
schon läuft. Auf dem Mikrocontroller tut sich aber bisher nix.
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <iostream>
4
using namespace std;
5
 
6
int main()
7
{
8
    while(true)   
9
    {
10
      cout << "Hallo Katha!" << endl; 
11
    }
12
}

Viele Grüße,
Katha K.

von Michael (Gast)


Lesenswert?

printf("Hallo Katha\n");

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Michael schrieb:
> printf("Hallo Katha\n");

Wird genauso nichts tun.

Katha müsste schon mal in das Handbuch des Compilers gucken, wie man
dort solche Dinge implementiert.

von Katha K. (Gast)


Lesenswert?

Hallo Michael,

danke, wenn ich die cout Zeile gegen das printf ersetze klapps auch auf 
dem Labor PC, hab ich gerade ausprobiert. Auf dem Mikrocontroller testes 
ich es gleich noch.

Für was steht den eigentlich printf? also print ist mir noch klar, aber 
das f? file? format? oder ?

von Jim M. (turboj)


Lesenswert?

Lass erstmal eine LED blinken, das ist das "Hallo, Welt!" für 
Mikrocontroller.

von Henning (Gast)


Lesenswert?

Worauf willst du dein "Hello World" eigentlich ausgeben? Display? Uart?? 
Nixies?

von Patrick B. (p51d)


Lesenswert?

Katha K. schrieb:
> Ich habe von einem Bekannten ein Programm bekommen das dem Labor PC auch
> schon läuft. Auf dem Mikrocontroller tut sich aber bisher nix.

Uart initialisiert, Prozessor configs/fuses richtig gesetzt, Terminal 
richtig einstellt...

Du kannst das Programm nie 1:1 auf den MCU portieren, da hier sehr viel 
mehr nötig ist als auf dem PC.

von Michael (Gast)


Lesenswert?

Hallo Katha,

also nun etwas genauer. du musst im Compilerhandbuch nachschauen was die 
Standardausgabeschnittstelle vom Pic ist. Wenn es die serielle 
Schnittstelle ist muss diese zu allererst initialisiert werden. Dies 
steht im Datenblatt zum Mikrocontroller. Anschliessend funktioniert die 
Ausgabe mit printf.

LG,
Michael

von W.S. (Gast)


Lesenswert?

Katha K. schrieb:
> wie kann ich die "cout"-Funktion auf meinen Mikrocontroller (PIC16F1459)
> umschreiben?

garnicht.

Entweder du hast für deinen µC einen C++ Compiler oder du hast kein 
cout.
Und wenn du einen C++ Compiler hast, dann mußt du in jedem Falle die 
eigentliche Ausgabefunktion selbst beisteuern. Aber dazu mußt du in die 
Doku der Toolchain schauen, wo und wie das zu bewerkstelligen ist. Per 
default landet all solch Zeugs nämlich meistens in einer leeren Routine 
und deine Texte kommen nirgendwo raus.

Mein Rat: gewöhn dir an, einen µC nicht so zu sehen wie deinen PC. Die 
Unterschiede sind ja doch erheblich. Auf deinem µC solltest du dir ein 
paar eigene Basis-Funktionen schaffen wie z.B.
char Char_Out(char c);
oder so ähnlich - und auf diese Basisfunktionen baust du dann den Rest 
auf, also String_Out oder Dezi_Out oder HexB_Out und so weiter. Dann 
kannst du auf den ganzen Kram verzichten, wie er an deinem PC üblich ist 
und auf dem µC schwer oder garnicht zu haben ist. Obendrein weiß man als 
µC Programmierer üblicherweise schon im Voraus, was man da eigentlich 
für Ausgaben haben will und kann all den Kram, den man grad nicht 
braucht getrost weglassen. Es sei denn, du bist scharf drauf, den 
Codespeicher des µC mit unnützem Zeugs vollzumüllen.

W.S.

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
Noch kein Account? Hier anmelden.