Forum: Mikrocontroller und Digitale Elektronik Was bedeutet char str ()?


von Alex Maier (Gast)


Lesenswert?

Hallo,
ich will einen ADC in c control pro programmieren. Doch es ist mir ein 
Rätsel was char str (40) bedeuten soll. es kann nichts mit dem Port oder 
dem Portbit zu tun haben. Kann mir jemand verraten was das bedeutet ?

Vielen Dank im voraus.

Alex Maier

von Peter II (Gast)


Lesenswert?

Alex Maier schrieb:
> Kann mir jemand verraten was das bedeutet ?

kann es sein das es ein

char str[40]

ist?

zeig doch mal bitte das orginal.

von Frank B. (f-baer)


Lesenswert?

Kannst du vielleicht mal was zum Kontext sagen, oder ein Codebeispiel 
bringen?
Wie sollen wir denn deine Frage beantworten, wenn du keinerlei 
Informationen lieferst?

von Alex Maier (Gast)


Lesenswert?

Es heißt wirklich Char str[40]. Aber wozu brauche ich diesen Befehl . 
Ist nicht alles mit Adc_VREF_BG gesagt ?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Gibt es zu diesem "c control" keinerlei Dokumentation?


Das dürfte eine Variablendeklaration zu sein, ein Array aus "Char", das 
Platz für 40 Zeichen bietet. Wird es für Zeichenketten genutzt, muss die 
terminierenden Null berücksichtigt werden, es bleiben also 39 
"Nutzzeichen".

von Alex Maier (Gast)


Lesenswert?

Also kann ich nach der 0 noch 40 Zeichen benutzen ?

von amateur (Gast)


Lesenswert?

In "C" wird vieles gesagt. In manchen Fällen geht es darum, dass 
überhaupt etwas "gesagt" wird.
Oder anders ausgedrückt: Das Gesagte hängt oft, muss aber nicht, 
zusammen.
Char str [ 40 ]; legt eine Variable für Zeichen mit einer maximalen 
Länge von 40 Zeichen an. Deren Name ist "str" - sehr einfallsreich. 
Diese wird möglicherweise an anderer Stelle benötigt.

von Alex Maier (Gast)


Lesenswert?

Vielen dank. Was passiert , wenn ich Char Str nicht benutzen würde ?

von Frank B. (f-baer)


Lesenswert?

Alex Maier schrieb:
> Also kann ich nach der 0 noch 40 Zeichen benutzen ?

Nein. Du kannst dir aber ein Buch aus der örtlichen Bibliothek holen und 
C-Grundlagen lernen. Ohne Codebeispiel weißt doch keiner hier, was 
dieser string macht bzw. wozu er benutzt wird. Alles, was darüber hinaus 
geht ist reine Spekulation.

von Alex Maier (Gast)


Lesenswert?

Ok, wartet kurz

von Alex Maier (Gast)


Lesenswert?

#define LED1 0

void main(void)
{
    word Limit;
    word ADC_Wert;


    Port_DataDirBit(LED1,PORT_OUT);
    Port_WriteBit(LED1,PORT_OFF);
    ADC_Set(ADC_VREF_BG, ADC0);

  Limit=1000;

    while (1)
    {
        ADC_Wert=ADC_Read()*5/2;


        if (ADC_Wert<Limit)
        {
            Port_WriteBit(PORT_LED1,PORT_OFF);
        }
        else
        {
            Port_WriteBit(PORT_LED1,PORT_ON);
        }

        AbsDelay(1);
    }
}

von PittyJ (Gast)


Lesenswert?

Jetzt mal ganz direkt gefragt:
Hast du schon jemals programmiert? Wenn ja, in was?
Nur damit wir beurteilen können, welche Grundlagen hier noch fehlen.

von Alex Maier (Gast)


Lesenswert?

Also das ist jetzt ohne char str[40]

von Alex Maier (Gast)


Lesenswert?

Ich kann nur In-und Outputs programmieren. Mehr nicht

von Frank B. (f-baer)


Lesenswert?

Alex Maier schrieb:
> Also das ist jetzt ohne char str[40]

Klasse. Großes Kino... Der Code liest also den ADC aus und setzt in 
Abhängigkeit eines eingestellten Limits eine LED, oder eben auch nicht. 
Warum fragst du, was dieser string macht, wenn dann in deinem 
Beispielcode dieser String nirgendwo auftaucht? Wie sollen wir deine 
Fragen beantworten, wenn du von uns erwartest, alles mit der Glaskugel 
zu erraten?

von Alex Maier (Gast)


Lesenswert?

Das ist es ja. Ich glaube ich brauche char str[], weil ich dieses 
Programm schon einmal übertragen habe .Es hat aber nich funktioniert

von Alex Maier (Gast)


Lesenswert?

Wollt ihr mir sagen, dass vielleicht die Schaltung falsch ist?

von Jan (Gast)


Lesenswert?

Troll? Falls nicht: Bitte, mach irgend ein beliebiges C-Tutorial durch 
und lern erstmal die Grundlagen der Sprache bevor du versuchst etwas zu 
programmieren. Deine Frage sollte sich nach 1-2 Tagen gemütlichen lernen 
von selbst beantworten.

von Michael D. (Gast)


Lesenswert?

Und das Programm richtig

von Alex Maier (Gast)


Lesenswert?

Weißt du zufällig, wo ich die c control pro lernen kann. Ich war schon 
mal in einem und habe nichts dazugelernt.

von Hmm (Gast)


Lesenswert?

Alex, man muss Dir hier, denke ich, eine Wahrheit sagen, die 
frustrierend für Dich sein wird.

Das ganze Thema "Programmieren" ist bei weitem komplizierter als Du Dir, 
wie ich das wahrnehme, im Moment vorstellen kannst. Es ist notwendig, 
das Du eine Reihe von Zusammenhängen lernst, ehe Du unsere Antworten 
überhaupt verstehen kannst. Das ist möglich. Kein Hexenwerk.
Aber das geht nicht in ein paar Minuten. Auch geht es nicht wenn man 
sich nur auf einen mikroskopischen Ausschnitt bezieht, wie Du es hier 
tust.

Lerne C. Hol Dir ein Buch, z.B. online von Galileo hier: 
http://openbook.galileocomputing.de/c_von_a_bis_z/
Wenn Du diese Arbeit nicht auf Dich nehmen willst, entscheide Dich so. 
Das
ist in Ordnung.

Aber bei Deinem Wissensstand läuft es darauf hinaus, das wir Deine 
Problem für Dich lösen. Dazu sind aus einer Reihe von Gründen kaum Leute 
bereit. Ich auch nicht.

von Alex Maier (Gast)


Lesenswert?

Ok, ich will aber die jahrelange Arbeit auf mich nehmen

von Hmm (Gast)


Lesenswert?

>Weißt du zufällig, wo ich die c control pro lernen kann.

Lege erstmal die C-Control beiseite und lerne C am PC. Bei einem 
Mikrocontroller stellen sich eine Reihe Probleme die eigentlich nicht 
unmittelbar mit C selbst zu tun haben.

>Ich war schon mal in einem und habe nichts dazugelernt.
Ich nehme an, Du warst in einem Kurs. Richtig? Nun, versuche einmal zu 
analysieren, was für Dich nicht gepasst hat. Das ist einfach so. Jeder 
lernt anders. Aber wenn Du weiterkommen willst, musst Du Dich damit 
auseinandersetzen.

von Alex Maier (Gast)


Lesenswert?

Es war ein kurs. Ich will einfach nur Roboter programmieren. Und das mit 
der gekürzten form von c. Eies will ich noch wissen: Ist mei Programm 
richtig?

von 3cm (Gast)


Lesenswert?

was verstehst du unter richtig? Ob der Syntax prinzipiell ok ist siehst 
du daran, dass es kompiliert. Ob es aber das macht was du möchtest, wird 
dir hier keiner beantworten können.

Wir wissen überhaupt nicht was dein Programm können soll!

von Alex Maier (Gast)


Lesenswert?

Beim ADC0 ist ein Poti angeschlossen. Falls es mehr als 1 V durchbringt, 
leutet die LED falls nicht, dann nicht

von schokoladenonkelchen (Gast)


Lesenswert?

Alex, wie alt bist Du ?

von Alex Maier (Gast)


Lesenswert?

Ich bin 13

von schokoladenonkelchen (Gast)


Lesenswert?

Womit hast Du das Programm geschrieben und wie wird das Programm auf 
Deinen Controller gelangen ?

von Alex Maier (Gast)


Lesenswert?

Mit der c control pro und es gelangt mit übertragen ->starten auf den 
controller

von schokoladenonkelchen (Gast)


Lesenswert?

Ok, dann sehe ich das so, dass Du schon eine Entwicklungsumgebung hast, 
mit der du schnell zu einem Erfolg kommen kannst.
Wie einige weiter oben schon bemerkt haben, solltest Du jetzt noch 
lernen, wofür diese einzelnen Zeilen Deines Programms stehen.

Das Programmieren von Robotern ist ein schönes Ziel.
Du wirst dahin nur gelangen, wenn du die Programmiersprache C 
beherrschst.
Es gibt viele kleine Teilziele, die Du Dir stecken kannst,
bis ein Roboter an die Reihe kommen wird.

Das wirst Du aber schaffen, das haben schon ganz andere Leute vor Dir 
geschafft.

von amateur (Gast)


Lesenswert?

@Alex
Noch ein Tipp.
Wenn Du nicht weist, was es mit einer Variablen oder auch mit einer 
Funktion auf sich hat: Suchen - wird eine normale Variable nicht 
verwendet, so ist sie oft überflüssig, natürlich nicht immer.
Überflüssige Variable entstehen entweder beim Kopieren und 
anschließendem, unvollständigen Löschen oder beim Probieren wenn der 
zugehörige Teil später verworfen wird.
Letzteres liegt vor allem daran, das Programmierer Konstanten und 
Variablen, aus Gründen der Übersichtlichkeit, am Anfang des Moduls (oft 
Datei) anlegen, die Funktionen aber viel weiter unten schreiben.
Dein Beispiel verwendet den A/D-Wandler, hier zum Schalten. 
Möglicherweise wird im nächsten Beispiel der Messwert ausgegeben. Hierzu 
wird ein Zwischenspeicher, für die Textdarstellung (lesbare Zeichen 
meist ASCII) benötigt. Str könnte dies sein.

von Alex Maier (Gast)


Lesenswert?

Danke für alles. Jetzt verstehe ich es

von M. K. (sylaina)


Lesenswert?

Alex Maier schrieb:
> Danke für alles. Jetzt verstehe ich es

Das bezweifele ich.

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.