Forum: Mikrocontroller und Digitale Elektronik ATtiny10 flash beschreiben aus Application


von MOBA 2. (Gast)


Lesenswert?

Ich habe eine Projekt, was extrem klein werden muss.
Daher habe ich den Attiny10 genommen (wichtig ist hierbei der ADC, 500 
Byte-Version hätten auch gereicht).

Wenn ein Logicwechsel eines Pins erkannt wird, soll der ADC-Wert 
ermittelt  und abgespeichert werden. Da das Programm VIEL kleiner als 
1kb ist, wollte ich das letzte Byte des Flash missbrauchen, um dort den 
Wert abzulegen, da die Chips kein EEPROM haben.


Jetzt kommt das Problem: Auslesen des Flashs geht (avr/pgmspace.h und 
dann pgm_read_byte(adresseof)). ABER (!) kein schreiben.

Mache ich hier was falsch, oder kann der das echt nicht?

von Karl M. (Gast)


Lesenswert?

Hallo,

im Datenblatt findest Du diesen Hinweis:

17.5. Self programming
The ATtiny4/5/9/10 don't support internal programming.

von Rainer B. (katastrophenheinz)


Lesenswert?

Look in the Book: Datenblatt S. 159:

17.5. Self programming
The ATtiny4/5/9/10 don't support internal programming.

von MOBA 2. (Gast)


Lesenswert?

Karl M. schrieb:
> Hallo,
>
> im Datenblatt findest Du diesen Hinweis:
>
> 17.5. Self programming
> The ATtiny4/5/9/10 don't support internal programming.

Mist, übersehen. Das ist doof.

Gibt es eine Möglichkeit, eine Variable (global) im Wert zu ändern?
Wenn ich global erstelle: uint8_t adc_hyst = 180; dann kann ich diese 
mit dem vordefiniertem Wert direkt im Programm nutzen.

Lässt sich dieser Wert ändern, sodass er nach Stromausfall nun den neuen 
Wert hat?

von Stefan F. (Gast)


Lesenswert?

Nein, denn EEPROM hat der Chip auch nicht.

Du musst dann wohl ein externes EEPROM anschließen, dafür hast du aber 
vermutlich nicht genügend I/O Pins frei.

von Rainer B. (katastrophenheinz)


Lesenswert?

Marius D. schrieb:
> Lässt sich dieser Wert ändern, sodass er nach Stromausfall nun den neuen
> Wert hat?

Nein, Self Programming funktioniert ja nicht und EEPROM hat's auch 
nicht.
Wie wär's mit nem tiny13 als Alternative? Der kann beides.

von Karl M. (Gast)


Lesenswert?

Hallo,

was ist mit einem attiny85 im 20M1 Gehäuse ?

von M. K. (sylaina)


Lesenswert?

Wäre denn ein 8-pinniges SOIC auch noch OK? Dann ginge ATTiny25/45/85, 
der ATTiny45/V gibts gar im TSSOP.

von bork (Gast)


Lesenswert?

Für Masochisten gibt es den neuen ATtiny102. Das ist im Prinzip ein 
ATtiny10 mit zwei Pins mehr und Self-Programming.

Alternativ könntest Du auch einen voll ausgerüsteten Controller für 
weniger Geld im kleinen Package nutzen.

von MOBA 2. (Gast)


Lesenswert?

bork schrieb:
> Für Masochisten gibt es den neuen ATtiny102. Das ist im Prinzip ein
> ATtiny10 mit zwei Pins mehr und Self-Programming.
>
> Alternativ könntest Du auch einen voll ausgerüsteten Controller für
> weniger Geld im kleinen Package nutzen.

Was mich jetzt nur mal echt interessieren würde, wäre die Sache, wo denn 
der Wert einer globalen Variable abgelegt wird? Der lässt sich 0 
ändern?!
Dazu braucht man doch kein EEProm und auch kein Flash-Programming, oder?


SOIC-8 ist gigantisch. Das ist so groß wie die halbe Platine.
Ich habe viele Geräte mit Attiny13 in dem Gehäuse, kein Problem. Bei dem 
Gerät MUSS es aber winzig sein. Das ist wichtig.

Das 20M1 Gehäuse ist so grad an der Grenze. Das wäre eine Option, aber 
schwer zum löten.

Die Sache mit dem Attiny102 ist gut, aber ich konnte keine finden zum 
Kaufen. Aliexpress hat die nicht.

von Vokalebene (Gast)


Lesenswert?

> Aliexpress hat die nicht.

Was soll das? Zu faul zum Suchen?

von Peter II (Gast)


Lesenswert?

Marius D. schrieb:
> Was mich jetzt nur mal echt interessieren würde, wäre die Sache, wo denn
> der Wert einer globalen Variable abgelegt wird?

der Wert ist teil von ausführbaren Programm, liegt also im Flash und 
wird beim starten in den Ram kopiert.

von Karl M. (Gast)


Lesenswert?

Hallo Marius,

deine Frage zur einer Globalenvariable,

Wenn diese als
1
const uint8_t anton = 123;
 kodiert worden ist,
dann wird sie als Konstante verwendet und anton ist im Programmablauf 
nicht änderbar.

Eine Anweisung
1
uint8_t anton = 123;
 führt in der Initialisierung Phase zur Wertzuweisung von 123.
1
ldi R16,123

Mehr findest Du im Assemblerlisting deines Codes.

von MOBA 2. (Gast)


Lesenswert?

Vokalebene schrieb:
>> Aliexpress hat die nicht.
>
> Was soll das? Zu faul zum Suchen?

Nein, auf eBay und Aliexpress gibt es den nicht. Bei allen anderen 
Distributoren lohnt es sich für mich nicht, da viel zu teuer!

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


Lesenswert?

Marius D. schrieb:

> Dazu braucht man doch kein EEProm und auch kein Flash-Programming, oder?

Dann überleg bitte noch einmal, woher der Wert denn kommen sollte,
wenn nicht aus dem Flash.  Aus der Luft?  Über die Betriebsspannung?

> Die Sache mit dem Attiny102 ist gut, aber ich konnte keine finden zum
> Kaufen. Aliexpress hat die nicht.

Aliexpress ist ja nun auch nicht gerade die erste Referenz als
Distributor für Atmel, nicht wahr?  Mouser und Digikey haben welche,
aber bislang wohl leider auch nur als SOIC, 8-UFDFN gibt's davon
offensichtlich noch nicht.  Kannst ja mal bei Microchip anfragen, ob
du von diesem Gehäuse denn schon Muster bekommen kannst.

von MOBA 2. (Gast)


Lesenswert?

Karl M. schrieb:
> Hallo Marius,
>
> deine Frage zur einer Globalenvariable,
>
> Wenn diese als
1
const uint8_t anton = 123;
 kodiert worden ist,
> dann wird sie als Konstante verwendet und anton ist im Programmablauf
> nicht änderbar.
>
> Eine Anweisung
1
uint8_t anton = 123;
 führt in der Initialisierung
> Phase zur Wertzuweisung von 123.
>
>
1
ldi R16,123
>
> Mehr findest Du im Assemblerlisting deines Codes.

Ach stimmt, ja gut, das ist klar, aber davon habe ich nichts. Schade.

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


Lesenswert?

Marius D. schrieb:
> da viel zu teuer!

Wenn du ein Geschäft auf Dumpingpreise irgendwelcher China-Höker
aufbaust, dann ist dir allerdings wohl nicht groß zu helfen.

von Axel S. (a-za-z0-9)


Lesenswert?

Marius D. schrieb:
> Was mich jetzt nur mal echt interessieren würde, wäre die Sache, wo denn
> der Wert einer globalen Variable abgelegt wird? Der lässt sich 0
> ändern?!

Der Wert einer globalen Variable wird natürlich in dieser Variable 
abgelegt. Die Variable selber befindet sich typischerweise im RAM.
Und natürlich läßt sich der Wert (in) einer Variable ändern.
Deswegen heißt es Variable und nicht Konstante.

Was war nochmal die Frage?

Geht es vielleicht um den initialen Wert der Variable? Der wird vom 
Startup-Code in den RAM kopiert, bevor die main() Funktion angesprungen 
wird. Üblicherweise liegt dazu im Flash eine Kopie aller initialisierten 
Variablen.

von Einer K. (Gast)


Lesenswert?

Marius D. schrieb:
> Was mich jetzt nur mal echt interessieren würde, wäre die Sache, wo denn
> der Wert einer globalen Variable abgelegt wird? Der lässt sich 0
> ändern?!

Variablen liegen im RAM!
Man kann auch IMMER sagen.
Siehe: Variablen liegen IMMER im RAM!
(auch die Register zählen dazu)

Wenn es auch Ausnahmen geben mag, ist doch keine dabei, die den ATTiny10 
betrifft.

Du hast nur eine Chance!
Eine einzige...
Der Tiny unter Strom halten.
Backupbatterie und Dauerschlaf

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


Lesenswert?

Arduino F. schrieb:
> Siehe: Variablen liegen IMMER im RAM!

Nein, muss nicht sein.  Sie können auch gut und gern in einem
Register liegen, oder im Falle einer als "const" deklarierten
Variablen gar nur als Direktoperand eines Befehls vorhanden sein.

Edit, da du deinen Beitrag editiert hast: Nein, Register sind kein
RAM, auch wenn man sie beim klassischen AVR im RAM-Adressraum zugreifen
kann (was aber eh' kaum jemand macht).  Trotzdem unterscheidet man
zwischen beiden.  (Der Z8 war in der Hinsicht allerdings ein Zwitter,
da er nur Register hatte, die man wiederum teils wie RAM benutzen
konnte, bspw. als Stack.  Ist aber eine ziemliche Sonderlösung.)

: Bearbeitet durch Moderator
von Einer K. (Gast)


Lesenswert?

Bin gerade zu faul zum streiten....

Und dem TE würde es auch nicht helfen.
Denn er träumt Wolkenkuckucksheime.
Und der Zahn will gezogen werden.

von MOBA 2. (Gast)


Lesenswert?

Jörg W. schrieb:
> Marius D. schrieb:
>> da viel zu teuer!
>
> Wenn du ein Geschäft auf Dumpingpreise irgendwelcher China-Höker
> aufbaust, dann ist dir allerdings wohl nicht groß zu helfen.

Das ist ja auch meine Sache, und warum für ein privates Projekt mehr 
zahlen als nötig?

von MOBA 2. (Gast)


Lesenswert?

Axel S. schrieb:
> Marius D. schrieb:
>> Was mich jetzt nur mal echt interessieren würde, wäre die Sache, wo denn
>> der Wert einer globalen Variable abgelegt wird? Der lässt sich 0
>> ändern?!
>
> Der Wert einer globalen Variable wird natürlich in dieser Variable
> abgelegt. Die Variable selber befindet sich typischerweise im RAM.
> Und natürlich läßt sich der Wert (in) einer Variable ändern.
> Deswegen heißt es Variable und nicht Konstante.
>
> Was war nochmal die Frage?
>
> Geht es vielleicht um den initialen Wert der Variable? Der wird vom
> Startup-Code in den RAM kopiert, bevor die main() Funktion angesprungen
> wird. Üblicherweise liegt dazu im Flash eine Kopie aller initialisierten
> Variablen.


Bekannt. Frage war dazu ob so eine "Kopie" existiert, oder nicht.
Macht für mich keinen sinn, denn man könnte den Wert auch einfach direkt 
über einen Assemblerbefehl initialisieren, wozu also eine Kopie?
Aber, selbst wenn eine existieren solle, ich kann den FLash nicht ändern 
von dem Programm aus.

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


Lesenswert?

Arduino F. schrieb:
> Und dem TE würde es auch nicht helfen.

Zustimmung.

Woran man beim ATtiny10 auch noch denken muss ist, dass man sie nur
bei Vcc = 5 V (±Toleranz) programmieren kann.

Da's die ATtiny102 im DFN offenbar noch nicht gibt, bliebe nur die
Variante, dafür bei Atmel/MCHP nach Mustern zu betteln, oder ATtiny13
im 3x3 10-DFN zu nehmen.

: Bearbeitet durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Marius D. schrieb:
> Das ist ja auch meine Sache,

Ja.

> und warum für ein privates Projekt mehr
> zahlen als nötig?

Weil gerade bei Einzelstücken oder ganz kleinen Serien die Bauteilkosten
im Vergleich zum restlichen Aufwand eine völlig untergeordnete Rolle
spielen.  Ein Euro mehr oder weniger, denkst du bei jedem Druck auf
das Bremspedal des Autos drüber nach, wieviel Cent an Kraftstoff du
jetzt gerade in Wärme nutzlos in die Umwelt verheizt?

von MOBA 2. (Gast)


Lesenswert?

Jörg W. schrieb:
> Arduino F. schrieb:
>> Und dem TE würde es auch nicht helfen.
>
> Zustimmung.
>
> Woran man beim ATtiny10 auch noch denken muss ist, dass man sie nur
> bei Vcc = 5 V (±Toleranz) programmieren kann.
>
> Da's die ATtiny102 im DFN offenbar noch nicht gibt, bliebe nur die
> Variante, dafür bei Atmel/MCHP nach Mustern zu betteln, oder ATtiny13
> im 3x3 10-DFN zu nehmen.

Ja das DFN-Gehäuse kann ich nicht gescheit löten und schon gar dann 
programmieren. Die Platine hat keine TPI/ISP-Verbindung. Die werden 
vorher geflashed und dann eingelötet.

Egal, ich checke das ab mit dem Tiny102, das ist der beste Vorschlag 
gewesen, die sollten passen - hoffentlich.

von Einer K. (Gast)


Lesenswert?

Marius D. schrieb:
> Frage war dazu ob so eine "Kopie" existiert, oder nicht.
> Macht für mich keinen sinn, denn man könnte den Wert auch einfach direkt
> über einen Assemblerbefehl initialisieren, wozu also eine Kopie?
> Aber, selbst wenn eine existieren solle, ich kann den FLash nicht ändern
> von dem Programm aus.
Du bist verwirrt!

Vor dem Start des Hauptprogramms wird der Variablenbereich 
initialisiert.
Und wenn da nicht Null reinkommt, sondern deine Vorbesetzung, dann wird 
die natürlich aus dem Flash geholt. Woher sonst?


Du kannst Variablen dazu bringen, dass sie einen Reset überleben, aber 
keinen Stromausfall.

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


Lesenswert?

Marius D. schrieb:
> Egal, ich checke das ab mit dem Tiny102, das ist der beste Vorschlag
> gewesen, die sollten passen - hoffentlich.

Verstehe ich nicht: die baumäßig kleinsten davon sind doch auch DFN,
die anderen sind doch wieder vergleichsweise riesige SOICs.

Aber gut, die SOICs bekommst du zumindest bei Digikey oder Mouser
ab Lager, für letzteres gibt's ja hier im Markt-Forum die regelmäßigen
Sammelbestellungen.

: Bearbeitet durch Moderator
von MOBA 2. (Gast)


Lesenswert?

Jörg W. schrieb:
> Marius D. schrieb:
>> Das ist ja auch meine Sache,
>
> Ja.
>
>> und warum für ein privates Projekt mehr
>> zahlen als nötig?
>
> Weil gerade bei Einzelstücken oder ganz kleinen Serien die Bauteilkosten
> im Vergleich zum restlichen Aufwand eine völlig untergeordnete Rolle
> spielen.  Ein Euro mehr oder weniger, denkst du bei jedem Druck auf
> das Bremspedal des Autos drüber nach, wieviel Cent an Kraftstoff du
> jetzt gerade in Wärme nutzlos in die Umwelt verheizt?


Ich brauche, für den Anfang, grob 20 dieser Platinen.
Als bspw. für den Tiny10:
Bei Ali kosten mich 20 Chips inkl. Porto á Chip 40cents.
Bei Apotheken wie Conrad oder eBay zahle ich JE Chip 1,50€ + 5€ Porto.
Als Privatmann fallen einige Distributoren (die immer noch teurer sind, 
alle schon durch den Versand) raus.

Da sagt kein normaler Mensch, ich kaufe jetzt bei den teuren um 
irgendjemanden zu unterstützen und der Aufwand/Materialkosten spielt 
hier eine krasse Rolle.

Btw: Bei jedem Druck auf die Bremse denke ich nicht darüber nach, aber 
vorausschauend fahren (rollen lassen, etc...) tue ich trotzdem, sonst 
verschwende ich das Benzin. Und gerade im Stadtverkehr ist das krass. Da 
muss man sowieso alle 3m neu anfahren.

von MOBA 2. (Gast)


Lesenswert?

Arduino F. schrieb:
> Marius D. schrieb:
>> Frage war dazu ob so eine "Kopie" existiert, oder nicht.
>> Macht für mich keinen sinn, denn man könnte den Wert auch einfach direkt
>> über einen Assemblerbefehl initialisieren, wozu also eine Kopie?
>> Aber, selbst wenn eine existieren solle, ich kann den FLash nicht ändern
>> von dem Programm aus.
> Du bist verwirrt!
>
> Vor dem Start des Hauptprogramms wird der Variablenbereich
> initialisiert.
> Und wenn da nicht Null reinkommt, sondern deine Vorbesetzung, dann wird
> die natürlich aus dem Flash geholt. Woher sonst?
>
>
> Du kannst Variablen dazu bringen, dass sie einen Reset überleben, aber
> keinen Stromausfall.

Das bin ich gerade in der Tat.

Wenn ich einen Befehl mache wie: sw $t3, $t3, 120 liegt die 120 dann im 
Flash, woher soll sonst der Wert kommen. Stimmt. Ist aber auch jetzt 
egal, ich kann das sowieso nicht ändern.

von MOBA 2. (Gast)


Lesenswert?

Jörg W. schrieb:
> Marius D. schrieb:
>> Egal, ich checke das ab mit dem Tiny102, das ist der beste Vorschlag
>> gewesen, die sollten passen - hoffentlich.
>
> Verstehe ich nicht: die baumäßig kleinsten davon sind doch auch DFN,
> die anderen sind doch wieder vergleichsweise riesige SOICs.
>
> Aber gut, die SOICs bekommst du zumindest bei Digikey oder Mouser
> ab Lager, für letzteres gibt's ja hier im Markt-Forum die regelmäßigen
> Sammelbestellungen.

Jop, da hast du Recht. Die sind nicht größer als die SOT23-6, ich habe 
aber bedenken beim löten und beim vorher flashen, Adapter wird es aber 
bestimmt geben.

von Einer K. (Gast)


Lesenswert?

Marius D. schrieb:
> Wenn ich einen Befehl mache wie: sw $t3, $t3, 120
Assembler?
Meine Aussage zur Initialisierung bezieht sich auf c/C++.

von MOBA 2. (Gast)


Lesenswert?

Arduino F. schrieb:
> Marius D. schrieb:
>> Wenn ich einen Befehl mache wie: sw $t3, $t3, 120
> Assembler?
> Meine Aussage zur Initialisierung bezieht sich auf c/C++.

Ich weiß jetzt nicht ob wir aneinander vorbeireden, aber das ist doch 
egal ob C/C++ oder Assembler. Die Initialisierung geschieht vorher nach 
obigen Prinzip.

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


Lesenswert?

Marius D. schrieb:
> Die Initialisierung geschieht vorher nach obigen Prinzip.

Je nachdem.  Für globale Variablen in C nicht, diese werden beim
Start des Programms initialisiert, indem deren Initalwerte in einer
Schleife aus einem Stück Flash in den RAM kopiert werden.  Im Flash
liegen diese Werte dabei typisch hinter dem eigentlichen Programmcode.

Für lokale ("auto") Variablen in C hast du Recht, diese werden als
Direktoperanden reingeholt.

von Axel S. (a-za-z0-9)


Lesenswert?

Marius D. schrieb:
> Axel S. schrieb:
>> Marius D. schrieb:
>>> Was mich jetzt nur mal echt interessieren würde, wäre die Sache, wo denn
>>> der Wert einer globalen Variable abgelegt wird? Der lässt sich 0
>>> ändern?!
>>
>> Der Wert einer globalen Variable wird natürlich in dieser Variable
>> abgelegt. Die Variable selber befindet sich typischerweise im RAM.
>> Und natürlich läßt sich der Wert (in) einer Variable ändern.
>> Deswegen heißt es Variable und nicht Konstante.
>>
>> Was war nochmal die Frage?
>>
>> Geht es vielleicht um den initialen Wert der Variable? Der wird vom
>> Startup-Code in den RAM kopiert, bevor die main() Funktion angesprungen
>> wird. Üblicherweise liegt dazu im Flash eine Kopie aller initialisierten
>> Variablen.
>
> Bekannt.

Dann verstehe ich die Frage erst recht nicht.

> Frage war dazu ob so eine "Kopie" existiert, oder nicht.

Offensichtlich müssen die initialen Werte aller Variablen irgendwo im 
nichtflüchtigen Speicher sein. Wie sonst sollten die Variablen 
intitialisiert werden?

> Macht für mich keinen sinn, denn man könnte den Wert auch einfach direkt
> über einen Assemblerbefehl initialisieren, wozu also eine Kopie?

Weil Variablen für gewöhnlich im RAM liegen. In diesen RAM muß der 
Initialwert geschrieben werden. Und zwar genau einmal, bevor das 
Programm startet. Da der Compiler nicht weiß (oft auch nicht wissen 
kann) wann du auf eine Variable zum ersten Mal zugreifst, kann er das 
nicht in den Programmcode legen.

Nun könnte der Compiler dafür einen Sack Maschinencode erzeugen a'la

1
Lade Register mit Startwert von Variable1
2
Schreibe Register im RAM an die Adresse der Variable1
3
Lade Register mit Startwert von Variable2
4
Schreibe Register im RAM an die Adresse der Variable2
5
...

Einfacher und kürzer ist es aber i.d.R. wenn der Compiler die 
initialisierten Variablen einfach hintereinander im RAM anlegt und die 
Startwerte in einem Rutsch in einer Schleife da rein kopiert.

von Draco (Gast)


Lesenswert?

Jetzt mal ne ganz blöde Frage: Wie und wohin speicherst du denn deine 
ADC-Wert nach dem sie gelesen wurden?! Lese und speichere doch dahin 
deinen Schwellwert!

von Frank K. (fchk)


Lesenswert?

Marius D. schrieb:
> Karl M. schrieb:
>> Hallo,
>>
>> im Datenblatt findest Du diesen Hinweis:
>>
>> 17.5. Self programming
>> The ATtiny4/5/9/10 don't support internal programming.
>
> Mist, übersehen. Das ist doof.

Du kannst einen PIC10F320 oder 322 nehmen. Der kann es.

fchk

von c-hater (Gast)


Lesenswert?

Jörg W. schrieb:

> Wenn du ein Geschäft auf Dumpingpreise irgendwelcher China-Höker
> aufbaust, dann ist dir allerdings wohl nicht groß zu helfen.

Huch?! Machen das inzwischen nicht fast alle? Ich meine: Bis hin zu den 
Ganz Großen.

Und da werden nicht zum "Dumpingpreis" Parts eingekauft, da wird heute 
meist gleich die ganze Platine oder gar das ganze Gerät in China 
gefertigt.

Ergo: nö, das sind keine Dumpingpreise. Vielmehr sind die der großen 
Bauteiledistributoren Wucherpreise. Denn gerade die kaufen ja auch 
alle nur in China zu den angeblichen "Dumpingpreisen" ein...

So sieht's aus und nicht anders. Alles andere verkennt die objektiven 
Tatsachen.

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


Lesenswert?

c-hater schrieb:
> So sieht's aus und nicht anders.

Soso, jahrelang selbst Distri gewesen?

von MOBA 2. (Gast)


Lesenswert?

c-hater schrieb:
> Huch?! Machen das inzwischen nicht fast alle? Ich meine: Bis hin zu den
> Ganz Großen.
>
> Und da werden nicht zum "Dumpingpreis" Parts eingekauft, da wird heute
> meist gleich die ganze Platine oder gar das ganze Gerät in China
> gefertigt.
>
> Ergo: nö, das sind keine Dumpingpreise. Vielmehr sind die der großen
> Bauteiledistributoren Wucherpreise. Denn gerade die kaufen ja auch
> alle nur in China zu den angeblichen "Dumpingpreisen" ein...
>
> So sieht's aus und nicht anders. Alles andere verkennt die objektiven
> Tatsachen.

Genau so sehe ich das auch, deswegen brauche ich nicht in einer Apotheke 
einkaufen gehen.

von MOBA 2. (Gast)


Lesenswert?

Draco schrieb:
> Jetzt mal ne ganz blöde Frage: Wie und wohin speicherst du denn deine
> ADC-Wert nach dem sie gelesen wurden?! Lese und speichere doch dahin
> deinen Schwellwert!

Ja das Problem ist aber sobald der Chip stromlos ist, ist alles weg.
Die ADC-Werte werden nur für Berechnungen während des Betriebs 
gebraucht, die Schaltschwelle kann variieren und muss gesichert werden.

von Frank K. (fchk)


Lesenswert?

c-hater schrieb:
> Und da werden nicht zum "Dumpingpreis" Parts eingekauft, da wird heute
> meist gleich die ganze Platine oder gar das ganze Gerät in China
> gefertigt.
>
> Ergo: nö, das sind keine Dumpingpreise. Vielmehr sind die der großen
> Bauteiledistributoren Wucherpreise. Denn gerade die kaufen ja auch
> alle nur in China zu den angeblichen "Dumpingpreisen" ein...

Wenn ich sehe, was die Frau vom Chef (der Hauptsitz meines aktuellen 
Arbytegebers ist in Shenzhen) auf dem lokalen Elektronikmarkt dort 
einkaufen lässt, dann komme ich manchmal mit dem Kopfschütteln nicht 
hinterher.

Vielschichtkondensatoren mit Leckströmen im Zehntel mA-Bereich (und dann 
wundern, dass die Knopfzellen so schnell leer sind).

TL431 Spannungsreferenzen, in denen kein Silizium ist, oder das falsche

Datenblätter, die nicht das Papier wert sind, auf dem sie gedruckt sind 
(deswegen gibts die auch als PDF). Technische Spezifikationen, die nur 
Marketinggewäsch sind und keine verbindlichen Aussagen.

Aber billig ist es, das stimmt.

fchk

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.