Pages: 1 [2]   Go Down
Author Topic: Canon EOS 350D über Arduino Nano ansteuern  (Read 1239 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Faraday Member
**
Karma: 97
Posts: 3514
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Int ist halt auch nicht gleich int. Das hängt von der Implementierung ab. Wenn du z.B. Programme für den PC schreibst hat int i.d.R. 4 Byte. Wir sind hier aber auf einem 8-Bit Prozessor, daher nur 2 Byte.

Oder nimm C#:
http://msdn.microsoft.com/de-de/library/exx3b86w%28v=vs.80%29.aspx

Da hat char plötzlich 2-Byte, da mit Unicode gearbeitet wird
« Last Edit: July 05, 2013, 08:02:08 am by Serenifly » Logged

Germany
Online Online
Faraday Member
**
Karma: 56
Posts: 2980
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Int ist halt auch nicht gleich int. Das hängt von der Implementierung ab.


Stimmt,  int  überlässt es dem Compiler, die natürliche Größe für den Prozessor auszuwählen.

Wenn man es genau festlegen will, gibt es übrigens auch die Datentypen
int8_t, int16_t, int32_t, uint8_t, uint16_t, uint32_t.

P.S.
Quote
Hab den Tipp ins Programm übernommen und es funktioniert
Funktioniert sogar, wenn du noch in deinem Sketch am Anfang die Zeilen

int verschlusszeitsekunden=0;
int verschlusszeit=0;

rausschmeisst smiley-wink
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 21
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Habs gestern schon rausgeschmissen da es ja quasi doppelt vorkam. Ich dachte vorher immer, dass ich alle Variablen vor dem voidSetup aufführen muss. Wieder was gelernt :-)
Logged

Offline Offline
Faraday Member
**
Karma: 97
Posts: 3514
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das kommt darauf wie du sie verwendest. Variablen die außerhalb der Funktionen deklariert werden, sind "global". D.h. sie sind für alle Funktionen sichtbar. Variablen die innerhalb einer Funktion deklariert werden - "lokal" - existieren für die anderen Funktionen nicht.

Man sollte globale Variablen nur verwenden wenn man es wirklich braucht. Manchmal lässt sich da natürlich nicht vermeiden oder es wird dann zu kompliziert. Also, lass dir nicht sagen, dass es *immer* schlecht ist.
Aber wenn du z.B. eine Variable durch eine Funktion ändern willst, dann macht man das i.d.R. durch das Übergeben von Parametern und gibt den geänderten Wert mit return zurück (oder bei C kann man auch Pointer als Parameter übergeben), statt die Variable global zu definieren.

Hier kommt noch hinzu dass wenn du "int var = 0" in der loop machst, diese Variable bei jedem Durchlauf zurückgesetzt wird. Wenn sie also ihren Zustand behalten soll muss man das außerhalb schreiben ("static" sollte dafür aber auch funktionieren).

Persönlich stelle ich bei globalen Variablen immer ein "_" davor. Dann sieht man es gleich. Hat außerdem den Vorteil, dass man in einer IDE mit AutoComplete (wie VisualStudio) nur "_" drücken muss und schon werden alle aufgelistet smiley
« Last Edit: July 06, 2013, 06:03:46 am by Serenifly » Logged

Pages: 1 [2]   Go Up
Jump to: