Show Posts
Pages: [1] 2 3 ... 183
1  International / Deutsch / Re: Fragen an die Profis (Tastatur Input Verabeitung und SD Log) on: April 18, 2014, 12:00:10 pm
Quote
Wenn ich es richtig verstanden habe, wird das char damit "ausgenullt"? 
Ja.
Damit sparst du dir, am Ende eine 0 zu schreiben, weil das ganze Array schon vorher mit 0  initialisiert wurde.

mit "das char" meinst du aber "die chars".  Ein char enthält max 1 Zeichen im üblichen Sprachgebrauch smiley-wink
2  International / Deutsch / Re: Bezugsquelle Bauteil AS5262 on: April 18, 2014, 11:53:30 am
mit 'ner heissen Lichtquelle lässt sich auch das löten (wohl eher sintern ;-))
Adapter-Boards gibts ja günstig in der Bucht.
Im Vergleich zu vielen Chips und deren Funktionalität sind Adapterboards relativ teuer, finde ich.
Aber beim Preisniveau für Elektronik bin ich inzwischen etwas verwöhnt.

Was verstehst du unter heissem Licht ?
Meine bescheidenen SMD - Lötkünste bestehen im Grunde darin, extra Flussmittel zu verwenden und gelegentlich hinterher mit Entlötlitze eventuelle Kurzschlüsse zwischen den Beinchen wieder zu entfernen...

Heissluft verwende ich zum Ausschlachten ...

Sorry refo, über das Kapern von Threads willst du dich nicht wirklich beschweren, oder ?  smiley-wink
Du scheinst ja auch keine Angst vor SMD zu haben, oder ?
3  International / Deutsch / Re: non-blocking function mit millis() on: April 18, 2014, 06:49:35 am
... und sogar nur jeweils 1 Relais und nie mehrere gleichzeitig  ...
Da braucht es noch nicht mal so bewährte Lösungen wie die Leuchtfeuer - Landkarte.

Das BlinkWithoutDelay reicht schon eigentlich.
Der grundlegend andere Ansatz: "loop ist sofort wieder fertig, macht aber fast nie was"
ist dir wohl noch unklar, bzw. erfordert, deine Funktionen komplett umzuschreiben
Zusätzlich zum  BlinkWithoutDelay
- Musst dir nur noch merken, an welchem Ventil du grade bist.
- vergleichst du die aktuelle Laufzeit mit einer von 4 Laufzeiten
- machst du kein endloses Blinken, sondern sowas wie eine Schrittsteuerung mit Zeitgesteuerten Schritten

Ausserdem ist unklar, was passieren soll
- wenn alle 4 durch sind :
         -  Alle Ventile zu bis ein neues Kommando seriell reinkommt  ?
         -  sofort wieder von vorne ?
         -  eine 5. Zeit, in der aber kein Ventil auf ist  ?
               - ( diese Zeit ist der Rest der Summe aller Zeiten auf  86400 ) so dass das Programm 24 Stunden später wieder losgeht
- wenn ein Kommando kommt während die Steuerung noch läuft:
        - Die Steuerung schliesst das aktuelle Ventil  und startet das neue Programm
         - oder ? ( kann man sich komplizierte Sachen ausdenken ) 
4  International / Deutsch / Re: Bezugsquelle Bauteil AS5262 on: April 18, 2014, 06:26:20 am
Quote
die bieten auch kostenlose Samples (bis zu 5 Stück) der neuesten Chips
Ja, TI fällt klar in Kategorie A)   Leider kommen sie bei Neuentwicklungen immer mehr vom DIP-Format ab.   smiley-wink
5  International / Deutsch / Re: Problem mit GLCD on: April 18, 2014, 06:10:13 am
Das hat jedenfalls nichts mit itoa zu tun.
ob du
Code:
char numText[8];
itoa (12345, numText, 10);
oder
Code:
char numText[8] = "12345";
nimmst, kommt auf's Gleiche raus.
Der beobachtete Unterschied liegt wohl im Aufruf des Displays.
6  International / Deutsch / Re: RAM- / EEPROM-Größe on: April 18, 2014, 05:45:02 am
Allerdings sind die untersten RAM - Adressen für die Register, Ports, usw.  belegt ...
Und wenn du  die Arduino IDE (-1.0.5-r2) benutzt, fällt dir sicher auf, dass bereits ein leerer Sketch für den UNO 466 bytes Flash belegt. Erstaunlich wenig, wenn man ansieht, was da alles zusammenkompiliert wird.
7  International / Deutsch / Re: Bezugsquelle Bauteil AS5262 on: April 18, 2014, 05:36:29 am
Quote
Aber die haben auch noch andere als Muster, scheinbar für 0$.
Wie es halt bei Mustern so ist:
A) denen ist es ziemlich egal (und du kriegst ein Riesen-UPS-Express-Paket mit ein bis drei aufwendigst verpackten Chips für lau)
B) du hinterlässt einen halbwegs professionellen Eindruck ( Firmenname, passende email-Adresse, und Vorstellung davon, was deine "anspruchsvolle Anwendungen mit hoher Auflösung" leistet und wie und wann du - wenn dein Prototyp funktioniert - dein Gerät produzieren und vermarkten willst smiley-wink
C) jemand grinst und überlegt, ob deine Kontaktdaten überhaupt (mit Sperrvermerk Bastelspinner) gespeichert werden sollen.

Auf 0$ oder 60$ kommt es (ausser für dich) kaum an: Von den 60$ ( davon 30 für den Versand ) können die nicht leben
Im Fall A) oder B) sind es Peanuts und günstiges Marketing
Im Fall C)  wenn es Leute wie dich nicht abschreckt, na ja, dann kriegst du es halt für den Preis.
8  International / Deutsch / Re: Fragen an die Profis (Tastatur Input Verabeitung und SD Log) on: April 17, 2014, 10:44:44 am
Quote
da steht auch noch Zeug vom vorherigen Durchlauf drin!
... sonst könnte der heartbleed bug nicht funktionieren smiley-wink
9  International / Deutsch / Re: Index außerhalb des gültigen Bereichs / Division durch NULL on: April 17, 2014, 10:41:06 am
Quote
habe gerade eine Erkenntnis, die ich nicht glauben mag.
Ich kann auf Elemente eines Arrays zugreifen die außerhalb des definierten (gültigen) Bereichs liegen, ohne eine Fehlermeldung zu bekommen. Dabei ist nicht nur abfragen, sondern auch das zuweisen von Werten, möglich.

Das hast du richtig gesehen. Welcome to the Club smiley-wink

Wer soll das (und wie) verbieten? Ohne Bildschirm im BIOS macht ein bluescreen keinen Sinn. Und "access violation" ist erst recht ein Fremdwort ohne Betriebssystem.
In der Regel wird nicht mal nach dynamischer Speicherbelegung geprüft, ob als Ergebnis 0 ( als Fehlerkennzeichen) geliefert wurde, sondern ungeprüft als Adresse verwendet, was erst indirekt, aber ziemlich bald, zu Problemen führt smiley-wink

Immerhin kannst du auf ein byte beliebig oft und viel dazuaddieren, ohne dass sich eins der Nachbar-Bytes verändert.
Das ist doch super, oder ?
Code:
void setup() {
static byte data[3] = {0,163,0};
data[1] += 12343567; // da meckert der Compiler nicht !
Serial.begin(115200);
Serial.println( data[0], DEC);  // bleibt 0
Serial.println( data[1], DEC);   // 42, warum nur ? ;)
Serial.println( data[2], DEC);  // bleibt 0
}
10  International / Deutsch / Re: Fragen an die Profis (Tastatur Input Verabeitung und SD Log) on: April 17, 2014, 09:52:27 am
Quote
Das Char ist dann leer.
Das ist ein missverständlicher Ausdruck, bei dem sich (vermutlich nicht nur mir) die Nackenhaare sträuben.
ein Array von char wird auch gerne string oder c-string genannt, was allerdings nicht mit einem String Objekt verwechselt werden darf.
Ein char* ( Pointer, mit dem Sternchen !) ist die Adresse eines char,
und damit gegebenfalls auch die Anfangsadresse eines char - Arrays, und kann so meist genauso verwendet werden.
 
Jedenfalls ist in solch einem Text alles nach dem ersten Ende - '\0' -Zeichen undefiniert,
und wird von Funktionen die mit char* arbeiten, nicht mehr verwendet.
Wenn TXTdisp[0]  den Wert 0 ( das gleiche wie '\0' ) behält, bleibt das Ding "leer", egal was in TXTdisp[1] und weiteren Bytes steht oder eingetragen wird.. 

Tip: am besten immer die index-Variable mit setzen, und nicht vergessen, vor einer Verwendung des char* an der richtigen Stelle die Ende-Kennung zu setzen.

Code:
const byte TXTLEN=20; 
byte index:
char TXTdisp[TXTLEN+1];  // Platz für 20 Zeichen + Ende-Kennung
...
index = 0;   //  TXTdisp löschen
TXTdisp[index] = 0;

Code:
char c = 'X'; 
if (index  < TXTLEN)  TXTdisp[index++] = c;  // Zeichen c in TXTdisp am Ende anfügen
TXTdisp[index] = 0;  // und Endekennung neu setzen
11  International / Deutsch / Re: Maximalen Differenzwert zeitabhängig ausgeben on: April 17, 2014, 04:29:04 am
Quote
dauert ein loop Durchlauf 10 Sekunden
Auf Dauer, wenn da jemals was interaktives dazu soll, blamierst du dich natürlich damit  smiley-wink
Keiner drückt eine Taste 10 Sekunden lang, ohne dass was passiert.
12  International / Deutsch / Re: 12V Lüfter über PWM on: April 17, 2014, 04:22:23 am
Dafür ist der 5V Pin ( und besonders der Spannungsregler davor ) gar nicht gemacht.
Entweder der Vin-Pin, oder umgekehrt, der Vin wird von der Stromversorgung der Lüfter-Elektronik mit versorgt
13  International / Deutsch / Re: Ausgänge über .txt File von SD Card steuern on: April 17, 2014, 04:15:12 am
Quote
Geht das mit Analog Werten genauso schön
Noch viel schöner, ist aber schwieriger smiley-wink

Wenn in deiner Datei eine Zeile mit   "1.23" steht,  musst du mindestens fünf mal
      uint8_t read_byte = Text.read();
aufrufen und erhältst nacheinander die Zeichen '1', '.' .... und am Ende ein oder zwei Zeichen für das Zeilenende.

1.  vergiss den Dezimalpunkt.
2. die einfachste Dezimalzahlwandlung ( ohne Vorzeichen ) ist
Code:
   static unsigned int value  = value*10 + (read_byte - '0');  // hängt eine Ziffer an den bisherigen Wert an
3. Beim Zeilenende-Zeichen ist die Zahl fertig
4. Das gleiche Problem ( nur nicht von SD Karte ) gabe heut schon mal.

Wie du dann eine Sinus-Kurve darstellst, würde mich interessieren smiley-wink
14  International / Deutsch / Re: const static, static const, egal, oder falsch? on: April 17, 2014, 03:58:55 am
Wofür willst du die Konstante als static deklarieren?
Oder ist es eine static Variable ( die sich ändern kann und Speicherplatz für den aktuellen Wert braucht) ?
15  International / Deutsch / Re: Kurze MIDI -Sequenzen direkt im Sketch ohne SD-Karte abspeichern on: April 17, 2014, 03:54:13 am
Quote
Kann mir jmd. sagen, was es mit der Zeile 0x00, 0xff, nach der Tracklängenzeile auf sich hat?
google und Konsorten ?
Pages: [1] 2 3 ... 183