Suche extrem kleine 1W-Lib

#3623958
Lesenswert?

Hallo,

ich habe ein Problem: zur Zeit bastle ich an einen Funktemperatursensor, 
der die Daten per NRF24L01+ verschickt. Das verschicken läuft auch 
soweit. Die bisherigen Routinen brauchen ca 1,45 kB (ich hab auf meinem 
tiny2313A insgesamt 2 kB - da braucht ihr nicht erst ins Datenblatt zu 
gucken :) ). Nun habe ich die DS18S20 Lib von Stefan Sicklinger 
eingebunden und compilliert: 6 kB Codegröße. Das ist villeicht - etwas - 
zu viel für meinen tiny.
Hat jemand eine 1W oder DS18x20 Lib, die <= 500 Byte, villeicht, wenn 
ich den restlichen Code optimiere, auch 700 Byte groß ist? Selber möchte 
ich die Routine nicht schreiben, weil ich bezweifle das bei meinem 
Programmier-Stil ich unter die "magischen" 500 Byte komme.

PS: Optimierung steht auf Os
Gast #3623980
Lesenswert?

Sorry, aber was soll an der Abfrage eines Temperatursensors so viel 
Speicherbedarf erfordern. Wenn es hoch kommt 200 Byte. Zumal du die 
komplette Kommunikation in 1,5kB realisiert hast, was mMn wesentlich 
umfangreicher ist. Das sollte dir zeigen, dass mit dem Code was nicht 
optimal läuft. Als Alternative könntest du statt 1W auch I²C (bei Atmel 
heißt das glaube ich TWI) nehmen. Das ist noch mal ein ganzes Stück 
einfacher weil die Kommunikation simpler ist. I²C sollte auch bei Atmel 
zum Standard gehören.
#3623991
Lesenswert?

Jens schrieb:
> Sorry, aber was soll an der Abfrage eines Temperatursensors so viel
> Speicherbedarf erfordern. Wenn es hoch kommt 200 Byte.
Keine Ahnung. Der Code kann hier heruntergeladen werden: 
http://www.sicklinger.com/en/component/remository/func-startdown/4/?Itemid=54

Das mit dem I2C kapier ich gerade nicht. Falls ich es vergessen hab zu 
erwähnen, ich hab einen DS18S20 Temperatursensor. Der läuft nur mit 1W. 
Und falls du meinst, das ich die 1W über das I2C Interface abfragen 
soll, dann geht das in meinen Fall auch nicht, weil das USI schon durch 
das NRF24L01 belegt ist.
Gast #3624014
Lesenswert?

Peter K. schrieb:
> - Zahlst du mir die Versandkosten von Mouser oder Digikey?

Wieviel Zeit kostet es dich, eine andere Lösung für dein Speicherproblem 
zu finden, welchen persönlichen Stundenlohn rechnest du und was kostet 
der Versandanteil, wenn du dich an eine Sammelbestellung hier im Markt 
ran hängst?

Bestell dir gleich ein paar mehr. Dann stehst du beim nächsten Projekt 
nicht wieder vor dem gleichen Problem.
#3624017
Lesenswert?

Peter K. schrieb:
> Frank K. schrieb:
>> Es gibt den Tiny4313. Wo ist das Problem?
> - Auch nur 4K Flash
> - Gibts nur bei Pollin, wollte ich vorerst nicht bestellen
>
>> Oder Tiny167 oder Tiny841.
> - Zahlst du mir die Versandkosten von Mouser oder Digikey?

Nö. Ich hätte für den Anfang einen PIC24FV32KA301 genommen und am 
Schluss geschaut, ob es auch ein kleinerer getan hätte. Für ein 
Einzelstück ist das eine sinnvolle Vorgehensweise.

fchk
Gast #3624027
Lesenswert?

Lasst die Finger von diesen Tinies. Die bringen nichts. Was sollen die 
20 Cents pro Stueck, die gespart werden? Ich habe meinen Standard im 
TQFP44 Gehauese. Den Mega644P. Den kaufe ich fuer 4.65, was soll's. Die 
schematischen Ausschnitte und die Pcb Ausschnitte sind auch immer 
dieselben, so ein geht ein Design flot. Der Code ist auch immer 
aehnlich, auch nur Copy-Paste.
#3624103
Lesenswert?

Hi,

im Anhang mal meine Routinen.
Mit CRC-Prüfung der Daten und Auswahlmöglichkeit des Sensors (DS18S20 
oder DS18B20).

Codeverbrauch: 562 Byte für die beigefügte Beispiel-main()

in der Header-Datei kann wenn nötig
1
#define USE_READ_ROM
 einkommentiert werden (wenn du die ROM-ID des Sensors lesen möchtest).
Dann braucht das Programm 646 Byte.

Mit leerer main-Funktion sind es 538 Byte.


lg
Chris


edit: du kannst ja wenn nötig noch die CRC-Prüfung rauswerfen, dürfte 
auch nochmal ein bisschen Code sparen.
Oder die Unterscheidung der Sensortypen in der Auswertefunktion, und 
dort nur deinen verwendeten Sensor behandeln
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren