Show Posts
Pages: [1] 2 3 ... 205
1  International / Deutsch / Re: Bitmanipulation in Byte on: September 05, 2014, 05:13:50 pm
Quote
Dann in dem entsprechenden Byte die 5 Stellen (mit y markiert) löschen: "Bxyyyyyxx UND B10000011
Und dann das teilgelöschte Byte mit dem Bitmuster T1 verODERn:  Bx00000xx OR B00001000

genauso.
Und die BitMuster T1 .. T4 gleich richtig gesetzt (wie oben B0001000) statt wie in deinem Code Schnipsel als
#define T1 0b00010

Hawe (und die anderen üblichen BitSet Funktionen) machen es eben nur mit 1 Bit, aber sonst genau wie du.
2  International / Deutsch / Re: Zeit zwischen 2 Steigenden Flanken on: September 05, 2014, 09:32:11 am
1. Du ermittelst den Zeitpunkt, an dem Eingang 2 auf HIGH wechselt
2. Du ermittels den Zeitpunkt, an dem Eingang 3 auf HIGH wechselt
3. Zum selben Zeitpunkt wie unter 2. ermittelst Du die Zeitdifferenz aus den beiden Zeitpunkten
Jurs ???

Wenn schon so ähnlich , dann:
Code:
void loop ()
{
  while(digitalRead(LS_1) == LOW) ;
  start = millis(); // LS_1 ist jetzt nicht mehr LOW
  while(digitalRead(LS_2) == LOW) ;
  dauer = millis()-start;
  Serial.print(dauer); Serial.println ( " ms ");
  while ( digitalRead(LS_1) == HIGH ||  digitalRead(LS_2) == HIGH ) { /* warten bis beide wieder LOW sind */ }
}

3  International / Deutsch / Re: LED mit millis() zum Leuchten bringen on: September 05, 2014, 08:49:41 am
int hat den Riesen-Nachteil dass es so leicht zu tippen ist, wenn man eigentlich
unsigned long   meint smiley-wink

Dein Sketch funktioniert sicher die ersten 32 Sekunden nach Restart. Das ist knapp für einen erfolgreichen Funktionstest.

Quote
Ganz korrekt ist das auch nicht, da die LED so so lange an wäre wie du den Button drückst und dann noch 100ms länger.
Das geht aus der "Aufgabe" nicht hervor, sie leuchtet jedenfalls "für 100 ms nach Tastendruck".
Dass sie davor aus sein soll, steht nicht in der Aufgabenstellung. Naja, was danach sein soll, auch nicht  smiley-wink
4  International / Deutsch / Re: Genauigkeit von "millis" ?? on: September 05, 2014, 06:48:22 am
Quote
Genau das möchte man bei einer Uhr nicht. Das wollte ich zum bedenken geben.
Ich hab ein paar Uhren im Haus, die den Minutenwechsel sichtbar unsynchronisiert machen. Stört mich nicht.

Wenn dir auch eine max. Abweichung von 10 - 20 sec nicht zuviel ist, aber eine Abweichung von ein paar Minuten im Jahr schon...
... könntest du so eine "Netz-Uhr" leichter bauen als eine DCF.

Worauf ich hinaus wollte: Besser als " Resonator-millis() " bei minimalem Aufwand ist es allemal.


Beide können sinnvoll mit einer einfachen DS1307 kombiniert werden:
- Die DCF, damit man beim Start sofort eine Zeit hat,
- Die Netz-Uhr, damit man bei Spannungsausfall nicht neu einstellen muss.

 

5  International / Deutsch / Re: 2.8" SPI Display: API-lib? on: September 03, 2014, 04:09:55 pm
Quote
Retoure zur Gutschrift nach Fernabsatzgesetz eingeleitet
Das ist völlig ok.
Im Laden müssen sie ja auch Licht anmachen, dich rein, mosern und wieder gehen lassen.
Immerhin brauchen sie dir deine Fahrkosten zum Laden nicht zu erstatten, auch wenn es dir dort nicht gefällt.
6  International / Deutsch / Re: Anfänger braucht Hilfe bei LED Stuerung mit Arduino on: September 03, 2014, 03:55:49 pm
Quote
Wie bekomme ich es dahin das er von den 255 wieder runter rechnet?
Das ist jetzt nicht dein Ernst ?

 
Code:
  byte Licht = (63000 - Zeit) * 255 / 1800;  // was passiert bei Zeit = 61200, was bei 63000 ???

Die Funktion map() kannst du dir auch mal anschauen, die macht das Gleiche.
7  International / Deutsch / Re: Genauigkeit von "millis" ?? on: September 03, 2014, 03:24:09 pm
Das einfachste für einen langfristig supergenauen Uhren-Takt ist übrigens die Netzfrequenz.
Die kann zwar schonmal kurzfristig bis zu 20 s abweichen, wird aber im Mittel wieder ausgeglichen, während jeder Quarz mehr oder weniger schnell wegdriftet.  (s.  http://www.netzfrequenzmessung.de/netzzeit.htm)



Quote
welche Interupts wirklich Probleme bei millis machen.
Es sind nicht die Interrupts die Probleme machen, sondern Programmierer, die denken, Interrupts könne man dazu verwenden, beliebige Berechnungen direkt in der ISR zu machen, oder dass noInterrupts() bzw. cli() eine Funktion für die Prioritätssteuerung sei.

Man kann auch (z.B. zum Strom sparen) die Timer anhalten.
In dem Fall werden millis() oder delay()  unbrauchbar.
Das hat doch nichts mit  Genauigkeit von "millis"  zu tun.
 
8  International / Deutsch / Re: Preis für Arduino mini pro - ebay China on: September 03, 2014, 07:27:37 am
Quote
Den Tag nach der Bestellung bekam ich ne Mail, wo er rumjammerte, das ihm da wohl beim Einstellen ein Fehler unterlaufen sei und der Preis eigentlich für 5 gelte. Danach war auch das Angebot geändert. Gut, dachte ich, da wollte einer über den günstigsten Preis Leute ködern und macht nen Rückzieher.
Umso mehr staunte ich, das dann doch 10 IC's ankamen.

In der Richtung habe ich auch nur super Erfahrungen. Bei irgendwelchen Problemen wird man sehr höflich, schnell und kulant behandelt. Auch wenn es nur eine Mini-Bestellung war.

Ein deutscher Händler hat, nachdem er nachträglich (nach Kaufabwicklung, Rechnung und Lieferung)  reklamierte, dass "Versandkostenfrei" ein Irrtum war, noch ein halbes Jahr später von seiner "Rechtsabteilung" Serienbriefe verschicken lassen...

Zum Topic selbst:
Mein Problem mit Billig-Nachbauten ist eigentlich, dass es eigentlich keine Gewähr gibt, dass teurere Teile überhaupt besser sind.
Jedenfalls bei ebay...
9  International / Deutsch / Re: Anfänger braucht Hilfe bei LED Stuerung mit Arduino on: September 03, 2014, 07:11:20 am
Schön, dass du Code in Code - Tags  ( # ) packst.
Allerdings ist Code ohne Variablen-Deklaration nicht sehr aussagefähig

Du meinst sicher
Code:
unsigned long Zeit = 62999; // zum Test: 17:29:59

if ( Zeit >= 61200 && Zeit <= 63000 )    // 17:00 bis 17:30
{
   byte Licht = (Zeit-61200) * 255 / 1800;  // von 0 nach 255 ansteigend
   analogWrite(5, Licht);
}

So empfinden es die meisten Leute auch als am besten lesbar.
Auch sind überzählige ;  manchmal egal, aber nicht immer. Deshalb besser entfernen, um keinen zu verwirren
10  International / Deutsch / Re: Buchempfehlung gesucht on: September 03, 2014, 06:42:40 am
@stefan:
http://de.wikibooks.org/wiki/C-Programmierung_mit_AVR-GCC
Eigenwerbung:
Es handelt sich hier um den Versuch, das AVR-GCC-Tutorial  von www.mikrocontroller.net als Buch umzuschreiben.
(Deutsch !)
Michael, kümmerst du dich etwa um das Projekt dort? Kann dir zur Hilfe kommen. Könnte den Teil mit dem Display übernehmen.

Ne, war mir nur beim googeln untergekommen. 
Kannst natürlich gerne dort mithelfen, von mir aus smiley-wink

Was der Vorteil eines Buchs gegenüber einer Liste von Links, einer guten Suchmaschine und online-Information ist,
wird mir im Lauf der Zeit immer unklarer.
11  International / Deutsch / Re: RTC läuft nicht on: September 03, 2014, 04:23:42 am
Quote
Wenn man nicht einstellt gibt sie dennoch eben irgendeine Zeit nach dem Mond aus.
Vor allem läuft sie dann nicht... smiley-wink

Quote
Bit 7 of Register 0 is the clock halt (CH) bit. When this bit is set to 1, the oscillator is disabled. When cleared to 0, the oscillator is enabled. On first application of power to the device the time and date registers are typically reset to 01/01/00 01 00:00:00 (MM/DD/YY DOW HH:MM:SS). The CH bit in the seconds register will be set to a 1. The clock can be halted whenever the timekeeping functions are not required, which minimizes current
Datasheets sind immer gut: http://datasheets.maximintegrated.com/en/ds/DS1307.pdf
12  International / Deutsch / Re: Binär in Hexadecimal umwandeln on: September 02, 2014, 01:21:28 pm
ASCII sind nur die unteren 127 Zeichen, für die andere Hälfte gibt es zig Varianten.
'Ä' kann alles mögliche sein. In Unicode ist es tatsächlich 196. (00C4)

HaWe's Tabelle war z.B. der gute alte DOS Zeichensatz, mit dem man keine Grafik brauchte, um Kästchen und Schatten zu malen.
( Codepage 437 in dieser Aufstellung )

LCD Displays haben gerne was japanisches (?) in der oberen Hälfte.

Das was man auf einem PC beim Programmieren sieht, kann man auch im SerialMonitor angezeigt bekommen, wenn der Arduino es zurücksendet. Kaum einer ahnt, wieviel Glück es braucht, dass es zu diesem Wunder kommt. smiley-wink


OT: ich denke mal, wenn "ascii" Italienisch wäre, würde es deutsch "ashii" ausgesprochen. Oder umgekehrt. smiley-wink
Kann man also unserm Uwe einfach so stehen lassen.
Ist aber völlig OT hier.
13  International / Deutsch / Re: Buchempfehlung gesucht on: September 02, 2014, 09:25:56 am
Quote
das direkte Auslesen der Register.
... ist wohl avr-gcc spezifisch.

http://de.wikibooks.org/wiki/C-Programmierung_mit_AVR-GCC

Eigenwerbung:
Quote
Es handelt sich hier um den Versuch, das AVR-GCC-Tutorial  von www.mikrocontroller.net als Buch umzuschreiben.
(Deutsch !)

Setzt wohl einigermassen C - Kenntnisse voraus, was auch vernünftig ist. Dafür gibt es übrigens auch massig Literatur.

Und, wie Uwe schon erwähnt hat, die Referenz-Bibeln sind die Atmel Datenblätter.
14  International / Deutsch / Re: Binär in Hexadecimal umwandeln on: September 02, 2014, 08:15:12 am
Für uns Dummies wurde die Anwort auf die Original-Frage extra in print eingebaut
Code:
int i = 'Ä'; // kein UNICODE, toi, toi, toi, aber welcher Zeichensatz ?;
Serial.write(i); Serial.print(': ');Serial.print(i,DEC);  Serial.print("  0x");Serial.print(i,HEX); Serial.print(" Binär ");Serial.println(i,BIN);

sprintf ist natürlich auch da, für Ansi-c Puristen. Und wer's gewohnt ist, für den ist es sicher einfacher.
(Vielseitiger ist es natürlich auch)

Aber wenn die Arduino Libraries das drin haben, sollte es doch wenigstens mal erwähnt werden.
15  International / Deutsch / Re: Problem mit Beispielprogramm für AS3935 Lightning Sensor Breakout on: September 02, 2014, 12:47:43 am
Adresse 0 ist "an alle"
http://www.i2c-bus.org/addressing/general-call-address/ 
Quote
The master cannot detect how many devices are using the message.

Macht daher keinen Sinn für den Scanner, und der Master kann auch nicht erkennen ob etwas passiert ist.

Quote
Damit ist die Variable addr doch als byte definiert?
Ja natürlich, bei Variablen in Funktionsaufrufen passt das nicht, da ist der Datentyp klar.
Beim "Unterschied zwischen 0 und NULL" ging's um feste Werte, dachte ich, sorry. 
Code:
Serial.write (0); // Fehler, ging aber früher
Pages: [1] 2 3 ... 205