Liste der Anhänge anzeigen (Anzahl: 1)
Beispielcode: stromsparender Datalogger mit Butterfly (LCD)
Ich habe mal den AVR butterfly IAR-C Code
http://www.atmel.com/dyn/products/to...p?tool_id=3146
and die GCC-Portierung
http://www.siwawi.arubi.uni-kl.de/avr_projects/#bf_app
genommen und das ganze nach Bascom übertragen und um einen Datalogger erweitert.
Der Butterfly kommt bei 3V mit 8µA (ohne LCD) bis 25µA (mit LCD, das sind 220mAh pro Jahr) aus und ist damit mit Abstand der Rekordhalter unter den Atmegas im Batteriebetrieb.
Der Original C-Code belegt 99% des Speichers (14300 Byte + 2048 Byte for the Bootloader). Nach tausend Codezeilen ist es sicher: Bascom erzeugt etwa 50% bis 100% mehr Hex-Code als GCC. Die Umsetzung wurde möglich, durch das nette Bascom-Feature Assembler und Basic zu mischen.
Nach konsequenter Straffung der AVR-Algorithmen blieb noch Platz für einen 4MBit Datalogger. Die Module music und vcard habe ich nicht übertragen.
Der Bascom Hex-Code ist kleiner als 8KByte, womit für eigene Erweiterungen genügend Platz bleibt.
Der Code ist gut kommentiert aber länger als die zulässige Nachrichenlänge. Ich hab die Datei hochgeladen:
Code:
***************************************************************************
'Datalogger software for AVR Butterfly demo board.
'
'This code based on the ATMEL sample code for the Butterfly (for IAR-C)
'parts not implemented (from IAR-C sample code): music and vcard
'
'BASCOM code with:
' State machine menu (over 100 entries)
' Clock (time+date)
' Datalogger with 4Mbit dataflash
' 32768 Logs at 16 Byte
' free intervall from 1 minute to 24 hours
' restore old datalogger counter after a reset
' formated print of datalogs at 9600 Baud:
' HH:MM:SS DD.MM.YY ADC1[RAW] ADC2[RAW] ADC3[RAW] Temp[°C]
' ADC ASM Code for fast conversion 8 times and averaging for better accuracy
' Temperature measurements
' Light measurements
' Voltage readings
' LCD interrupt
' scrolling text (over 6 chars)
' LCD auto power off (timer interrupt)
' Adjust LCD contrast
' Key interrupt
' detect permanent pressed key (interrupt)
' Key Click (Speaker)
' Main Loop with power save mode (loop with 1sec and 63ms)
'
'very low power consumption: 8µA LCD OFF
' 25µA LCD ON (220mAh a year !!!)
' 40µA scrolling text
'
'hex code length: <8 KByte (under 50% of 16K memory)
'
'Attention! The dataflash actice current peak while a erase is 35mA (<12ms).
'If you use a external battery, the schottky diode BAT54C (Vcc_ext) has a
'forward voltage of 0,4V-0,5V. The dataflash needs min 2,5V.
' => The minimal external voltage with Datalogger is 3,0V!!!!
'If the external voltage sink under 3V the SPI-Bus reads only &HFF.
'
'code testet with Bascom 1.11.8.1 and 1.11.8.3
'workaround for following Bascom AVR-Register-Bugs (Atmega169):
' Config Spi = ...
' Config Clock = Soft
' Powersave
' Clockdivison
'***************************************************************************
$regfile = "m169def.dat"
$framesize = 32 'Stack
$swstack = 32
$hwstack = 64
hier mal die Print-Ausgabe im Format:
HH:MM:SS DD.MM.YY ADC1[RAW] ADC2[RAW] ADC3[RAW] Temp[°C]
Zitat:
400: 15:50:0 1.7.6 529 0 494 +23C
401: 16:0:0 1.7.6 529 0 496 +23C
402: 16:10:0 1.7.6 524 0 492 +24C
403: 16:20:0 1.7.6 499 0 370 +26C
404: 16:30:0 1.7.6 476 0 139 +28C
405: 16:40:0 1.7.6 467 0 146 +28C
406: 16:50:0 1.7.6 464 0 152 +29C
407: 17:0:0 1.7.6 466 0 161 +28C
408: 17:10:0 1.7.6 489 0 199 +26C
409: 17:20:0 1.7.6 511 0 528 +25C
410: 17:30:0 1.7.6 510 0 212 +25C
Liste der Anhänge anzeigen (Anzahl: 2)
Der Butterfly ist im Roboternetz wohl eher ein Exot :-)
Zur Übersicht als Ergänzung des Menüsystem der extrem effektiven State Machine.
Ich habe noch den guten Hinweis von dennisstrehl https://www.roboternetz.de/phpBB2/ze...229&highlight= umgesetzt und das Menü um die Messung der Batteriespannung erweitert.
Programm zu groß für die Demo-Version
Hallo Thomas,
ich würde dein Programm gerne mal auf meinen Butterfly einspielen.
Kann das Teil aber nicht übersetzten, der Code ist für die Demo-Ver zu groß.
Kannst Du den Hex Code bereitstellen?
Im vorraus herzlichen Dank
Bernd
Butterfly: Datenlogger, Uhrmodul -- Anzeige unruhig
Hallo Thomas,
so jetzt habe ich das Zeitmodul extrahiert und es läuft auch.
Aber die Sekunden blitzen zwischendurch nur alle paar Sek auf
und die Minuten sind auch nicht immer zu sehen, bzw. werden ständig neu "aufgebaut".
Ist das bei dir auch so?
Woran liegt das?
Hängt es an der Interupt-Steuerung oder den flashen (Stromspar...), die ich noch nicht verstanden habe!!!
Gruß
Bernd
Liste der Anhänge anzeigen (Anzahl: 1)
Re: Butterfly: Datenlogger, Uhrmodul -- Anzeige unruhig
Zitat:
Zitat von mail_bernd
Ist das bei dir auch so?
nee, bei mir läuft es normal.
Du hast sicherlich beim Eindampfen des Quellcodes etwas weggespart ;-)
Als Anlage mal die die compilierte Version 1.1.