<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7952529335375326616</id><updated>2011-07-08T15:23:57.441+02:00</updated><category term='ATtiny13'/><category term='AVR'/><category term='LCD'/><category term='LED'/><category term='Uhr'/><category term='ATtiny2313'/><category term='ARDF'/><title type='text'>dh8sz</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dh8sz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dh8sz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Matthias</name><uri>http://www.blogger.com/profile/12271142088971991602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7952529335375326616.post-1959056660254025289</id><published>2010-02-12T09:07:00.004+01:00</published><updated>2010-02-12T09:43:57.375+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='Uhr'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny2313'/><title type='text'>LCD mit HD44780</title><content type='html'>Nachdem ich mehrere HD44780kompatibele LCDs bekommen habe war es an der Zeit sich mal eingehender damit zu beschäftigen.&lt;br /&gt;Die Leude &lt;a href="http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD"&gt;Mikrocontroller.net&lt;/a&gt; haben da ganze Arbeit geleistet und mich viel weitergebracht...&lt;br /&gt;Wie auch immer, das erste "Projekt" auf dem LCD war -natürlich- eine Uhr. Und natürlich wieder mit meinem "Standart"-AVR ATtiny2313.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oSyAAjotss0/S3UOsUOgt8I/AAAAAAAAABM/YHbiSjQ89P4/s1600-h/lcd-klein.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 163px;" src="http://1.bp.blogspot.com/_oSyAAjotss0/S3UOsUOgt8I/AAAAAAAAABM/YHbiSjQ89P4/s320/lcd-klein.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5437268279626348482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Das sieht doch schon mal nach was aus.&lt;br /&gt;Uhrzeit war ein Klacks und auch das Datum war kaum herausfordernd. Was wirklich "schwer" war, war die implementierung der Bedienelemente: Taster wollen abgefragt werden und es soll erkannt werden od der Taster gedrüückt wurde, fetgehalten wurde oder losgelassen ist. Das ganze in verschiedenen "kontexten", schliesslich will man die Uhr ja auch stellen könnnen...&lt;br /&gt;&lt;br /&gt;Und da war sie nun, ein paar zahlen auf nem LCD. &lt;br /&gt;Ist aus einigem Abstand recht schwer zu lesen...&lt;br /&gt;&lt;br /&gt;Das muss sich ändern:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oSyAAjotss0/S3UQGC2Lt0I/AAAAAAAAABU/5y6fuFSAL_A/s1600-h/lcd-gross.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 143px;" src="http://3.bp.blogspot.com/_oSyAAjotss0/S3UQGC2Lt0I/AAAAAAAAABU/5y6fuFSAL_A/s320/lcd-gross.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5437269821149132610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also einen neuen Zeichensatz gebastelt, und aus den maximal 8 eigenen Zeichen ein paar "richtig Große" Ziffern zusammengestellt.&lt;br /&gt;&lt;br /&gt;Das ganze Programm füllt den 2313 mittlerweile zu 80% aus und das Listing ist irgendwie viel zu lang um es einfach hier zu posten...&lt;br /&gt;( und dabei wollt ich noch einen Alarm-timer und ein Calibrierungs-byte (um sekunden/woche auszugleichen) mit einbauen...)&lt;br /&gt;&lt;br /&gt;Also erslmal einen Ausschnitt, und zwar den für die grossen Ziffern:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;lcd_big_ziffer:&lt;br /&gt;; wandelt eine BCD ziffer in&lt;br /&gt;; eine ziffer in großschrift&lt;br /&gt;;  es ist erforderlich das vorher der Zeichensatz_big geladen ist.&lt;br /&gt;; die zahl wird in temp übergeben&lt;br /&gt;; der offset auf dem LCD in temp2&lt;br /&gt;;  aufgerufene Unterprogramme&lt;br /&gt; push temp&lt;br /&gt; push temp2&lt;br /&gt; push temp3&lt;br /&gt; push ZL&lt;br /&gt; push ZH&lt;br /&gt; &lt;br /&gt; ; Z-register initialisieren&lt;br /&gt; ldi ZL, low(big_font*2)&lt;br /&gt; ldi ZH, high(big_font*2)&lt;br /&gt; &lt;br /&gt; ;offset in der tabelle aus der ziffer berechnen (ziffer=ziffer*4)&lt;br /&gt; lsl temp&lt;br /&gt; lsl temp&lt;br /&gt; clr temp3&lt;br /&gt;&lt;br /&gt; add ZL, temp&lt;br /&gt; adc ZH, temp3&lt;br /&gt; &lt;br /&gt; ;cursor in der ersten zeile positionieren&lt;br /&gt; mov temp, temp2&lt;br /&gt; rcall lcd_pos&lt;br /&gt;&lt;br /&gt; ;symbole für die erste Zeile ausgeben&lt;br /&gt; lpm temp, Z+&lt;br /&gt; rcall lcd_data&lt;br /&gt; lpm temp, Z+&lt;br /&gt; rcall lcd_data&lt;br /&gt;&lt;br /&gt; ;cursor in der 2. zeile positionieren&lt;br /&gt; mov temp, temp2&lt;br /&gt; ori temp, 0x40&lt;br /&gt; rcall lcd_pos&lt;br /&gt;&lt;br /&gt; ;symbole für die 2. zeile ausgeben&lt;br /&gt; lpm temp, Z+&lt;br /&gt; rcall lcd_data&lt;br /&gt; lpm temp, Z&lt;br /&gt; rcall lcd_data&lt;br /&gt;&lt;br /&gt; pop ZH&lt;br /&gt; pop ZL&lt;br /&gt; pop temp3&lt;br /&gt; pop temp2&lt;br /&gt; pop temp&lt;br /&gt;&lt;br /&gt; ret&lt;br /&gt;&lt;br /&gt;big_font:&lt;br /&gt;; hier ist abgelegt welche symbole wie zu grossen ziffern zusammengesetzt werden&lt;br /&gt; .db 0x07, 0x01, 0x06, 0x05 ;0&lt;br /&gt; .db 0x20, 0x01, 0x20, 0x00 ;1&lt;br /&gt; .db 0x04, 0x02, 0x06, 0x04 ;2&lt;br /&gt; .db 0x02, 0x04, 0x04, 0x05 ;3&lt;br /&gt; .db 0x06, 0x06, 0x03, 0x07 ;4&lt;br /&gt; .db 0x00, 0x03, 0x04, 0x02 ;5&lt;br /&gt; .db 0x06, 0x04, 0x06, 0x05 ;6&lt;br /&gt; .db 0x03, 0x02, 0x20, 0x00 ;7&lt;br /&gt; .db 0x05, 0x02, 0x06, 0x05 ;8&lt;br /&gt; .db 0x07, 0x01, 0x03, 0x02 ;9&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;und dazu noch den Zeichensatz fürs LCD:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;zeichensatz_big:&lt;br /&gt; .db 0b00000011, 0b00011111 ;...xx xxxxx&lt;br /&gt; .db 0b00000011, 0b00011111 ;...xx xxxxx&lt;br /&gt; .db 0b00000011, 0b00000011 ;...xx ...xx&lt;br /&gt; .db 0b00000011, 0b00000011 ;...xx ...xx&lt;br /&gt; .db 0b00000011, 0b00000011 ;...xx ...xx&lt;br /&gt; .db 0b00000011, 0b00000011 ;...xx ...xx&lt;br /&gt; .db 0b00000011, 0b00000011 ;...xx ...xx&lt;br /&gt; .db 0b00000011, 0b00000011 ;...xx ...xx&lt;br /&gt;&lt;br /&gt; .db 0b00011111, 0b00011111 ;xxxxx xxxxx&lt;br /&gt; .db 0b00011111, 0b00011111 ;xxxxx xxxxx&lt;br /&gt; .db 0b00000011, 0b00000000 ;...xx .....&lt;br /&gt; .db 0b00000011, 0b00000000 ;...xx .....&lt;br /&gt; .db 0b00000011, 0b00000000 ;...xx .....&lt;br /&gt; .db 0b00000011, 0b00000000 ;...xx .....&lt;br /&gt; .db 0b00011111, 0b00000000 ;xxxxx .....&lt;br /&gt; .db 0b00011111, 0b00000000 ;xxxxx .....&lt;br /&gt; &lt;br /&gt; .db 0b00000000, 0b00000011 ;..... ...xx&lt;br /&gt; .db 0b00000000, 0b00000011 ;..... ...xx&lt;br /&gt; .db 0b00000000, 0b00000011 ;..... ...xx&lt;br /&gt; .db 0b00000000, 0b00000011 ;..... ...xx&lt;br /&gt; .db 0b00000000, 0b00000011 ;..... ...xx&lt;br /&gt; .db 0b00000000, 0b00000011 ;..... ...xx&lt;br /&gt; .db 0b00011111, 0b00011111 ;xxxxx xxxxx&lt;br /&gt; .db 0b00011111, 0b00011111 ;xxxxx xxxxx&lt;br /&gt; &lt;br /&gt; .db 0b00011000, 0b00011111 ;xx... xxxxx&lt;br /&gt; .db 0b00011000, 0b00011111 ;xx... xxxxx&lt;br /&gt; .db 0b00011000, 0b00011000 ;xx... xx...&lt;br /&gt; .db 0b00011000, 0b00011000 ;xx... xx...&lt;br /&gt; .db 0b00011000, 0b00011000 ;xx... xx...&lt;br /&gt; .db 0b00011000, 0b00011000 ;xx... xx...&lt;br /&gt; .db 0b00011111, 0b00011000 ;xxxxx xx...&lt;br /&gt; .db 0b00011111, 0b00011000 ;xxxxx xx...  &lt;br /&gt; &lt;br /&gt; ;tabellenende&lt;br /&gt; .db 0xff, 0xff&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Wenn ich mal eine schöne Möglichkeit gefunden habe Dateien zum download annzubieten gibt es den kompletten code.&lt;br /&gt;&lt;br /&gt;Und ja, auch hiervon hab ich keine vorzeigbare schaltung. Aber vlt kann man  sowas ja bald einfach mir "Fritzing" erstellen...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7952529335375326616-1959056660254025289?l=dh8sz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dh8sz.blogspot.com/feeds/1959056660254025289/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://dh8sz.blogspot.com/2010/02/lcd-mit-hd44780.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/1959056660254025289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/1959056660254025289'/><link rel='alternate' type='text/html' href='http://dh8sz.blogspot.com/2010/02/lcd-mit-hd44780.html' title='LCD mit HD44780'/><author><name>Matthias</name><uri>http://www.blogger.com/profile/12271142088971991602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oSyAAjotss0/S3UOsUOgt8I/AAAAAAAAABM/YHbiSjQ89P4/s72-c/lcd-klein.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7952529335375326616.post-3245406700515643178</id><published>2009-08-31T16:50:00.005+02:00</published><updated>2009-08-31T17:45:53.867+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><category scheme='http://www.blogger.com/atom/ns#' term='Uhr'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny2313'/><title type='text'>Meine erste selbsgebaute Uhr</title><content type='html'>So, nach mehreren (z.T.) erfolgreichen Vorversionen ist meine erste Uhr(enschaltung) nun fertig.&lt;br /&gt;Ich, als Microkontroler-Anfänger bin über &lt;a href="http://wiki.blinkenarea.org/index.php/Ornament"&gt;dieses Projekt&lt;/a&gt; gestolpert und habe wirklich viel davon gelernt. Z.B. wie man einen schönen BCD-7Segment-Decoder programmiert und wie man überhaupt ein Programm (in AVR-asm) struckturiert usw...&lt;br /&gt;&lt;br /&gt;Also erstmal das Steckbrett:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oSyAAjotss0/Spvnhynl1KI/AAAAAAAAAA8/gxF53YTw2D8/s1600-h/2313uhr03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_oSyAAjotss0/Spvnhynl1KI/AAAAAAAAAA8/gxF53YTw2D8/s320/2313uhr03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5376145147906348194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Typisch Breadboard - mit Drahtverhau...&lt;br /&gt;&lt;br /&gt;Man beachte die Anzeige:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oSyAAjotss0/Spvo8HqLtpI/AAAAAAAAABE/TlMnU0G_hsk/s1600-h/2313uhr02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_oSyAAjotss0/Spvo8HqLtpI/AAAAAAAAABE/TlMnU0G_hsk/s320/2313uhr02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5376146699742590610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wie ich dieses klassische Rot und diese winzigen LEDs mag.&lt;br /&gt;Einfach mal &lt;a href="http://www.decadecounter.com/vta/tubepage.php?item=33"&gt;hier&lt;/a&gt; vorbeischauen.&lt;br /&gt;(und JA die Siemens DL340M sind um Größenordnungen besser. aber für den Steckbrettaufbau irgendwie zu Schade)&lt;br /&gt;&lt;br /&gt;Die Bediehnung der Uhr hab ich bei der aus "meinem" Auto abgeschaut: einfach aber nicht ausbaufähig. Mit einem Taster kann ein "reset" ausgelöst werden: dann zeigt die Uhr wieder 01:00 an. Mit einem weiteren werden die Stunden gestellt: jeder Tastendruck lässt dei Anteige eine Stunde weiterschalten. Und mit einem dritten Taster wird das gleiche mit der Minutenanzeige gemacht.&lt;br /&gt;&lt;br /&gt;Die Schaltung werde ich nochmal schön mit Eagle aufhübschen, bis dahin muss der Code reichen.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;; einfache Uhr mit 4stelliger LED Anzeige&lt;br /&gt;; Anzeige ist DL340M - 7 Segement mit gem. Kathode&lt;br /&gt;; by DH8SZ nach GPL&lt;br /&gt;&lt;br /&gt;; Version 0.0.1 - Zählanzeige mit int.RC als Taktgeber und keiner Stellmöglichkeit&lt;br /&gt;; Version 0.0.1a - statt Zeit werden Festwerte Angezeigt - Test&lt;br /&gt;; Version 0.0.1b - Anzeige wieder normal - timer beschleunigt&lt;br /&gt;; Version 0.0.1c - reti für interrupt-return geändert&lt;br /&gt;; Version 0.0.2 - zählt nun bis 24:00 und der Dezimalpunkt der 2. Stundenstelle blinkt&lt;br /&gt;; Version 0.0.3 -  Tasten zum stellen: reset, PD2, PD3&lt;br /&gt;; Version 0.0.3a - alte zählung + bugfixes in ledoff&lt;br /&gt;; Version 0.0.3b - neue zählung (i.o.) + dezimalpunkt blinkt nun wirklich&lt;br /&gt;; Version 0.0.4 - Sekunden 1:1 für Testaufbau&lt;br /&gt;; Version 0.0.4a - LED-Multiplexfrequenz verdoppelt&lt;br /&gt;&lt;br /&gt;; Display:&lt;br /&gt;;      -----&lt;br /&gt;;     I  g  I&lt;br /&gt;;   e I     I f&lt;br /&gt;;     I     I&lt;br /&gt;;      -----&lt;br /&gt;;     I  d  I&lt;br /&gt;;   b I     I c&lt;br /&gt;;     I     I&lt;br /&gt;;      -----&lt;br /&gt;;        a&lt;br /&gt;&lt;br /&gt;; Ports (Display DL340M)&lt;br /&gt;; PB0 - Pin4 - c&lt;br /&gt;; PB1 - Pin9 - f&lt;br /&gt;; PB2 - Pin3 - a&lt;br /&gt;; PB3 - Pin6 - d&lt;br /&gt;; PB4 - Pin13 - g&lt;br /&gt;; PB5 - Pin2 - b&lt;br /&gt;; PB6 - Pin11 - e&lt;br /&gt;; PB7 - Pin5 - 5&lt;br /&gt;;&lt;br /&gt;; PD0 - Pin14 - kat.System1&lt;br /&gt;; PD1 - Pin12 - kat.system2&lt;br /&gt;; PD4 - Pin8 - kat.System3&lt;br /&gt;; PD5 - Pin9 - kat.System4&lt;br /&gt;&lt;br /&gt;.include "tn2313def.inc"&lt;br /&gt;&lt;br /&gt;.def w1=R14&lt;br /&gt;.def W2=R15&lt;br /&gt;.def temp=R16&lt;br /&gt;.def temp2=R17&lt;br /&gt;.def std10=R18&lt;br /&gt;.def std01=R19&lt;br /&gt;.def min10=R20&lt;br /&gt;.def min01=R21&lt;br /&gt;.def sek10=R22&lt;br /&gt;.def sek01=R23&lt;br /&gt;&lt;br /&gt;;===========================================================================&lt;br /&gt;&lt;br /&gt;.dseg&lt;br /&gt;  ;alles leer&lt;br /&gt;&lt;br /&gt;;===========================================================================&lt;br /&gt;&lt;br /&gt;.cseg&lt;br /&gt;.org 0x0000&lt;br /&gt;  rjmp reset ; Der Start des Programmes&lt;br /&gt;.org 0x0001&lt;br /&gt;  rjmp stunden_stellen ;Interruptroutine zum Stunden erhöhen&lt;br /&gt;.org 0x0002&lt;br /&gt;  rjmp minuten_stellen ;Interruptroutine zum Minuten erhöhen&lt;br /&gt;.org 0x0004&lt;br /&gt;  rjmp takt ; Interruptroutine zum Sekunden zählen&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;charset:&lt;br /&gt; ; hier kommt die Tabelle für die BCD/7segment Umsetzung hin&lt;br /&gt; .include "charset.asm"&lt;br /&gt;&lt;br /&gt;;===========================================================================&lt;br /&gt;;                        Initianisierung&lt;br /&gt;;===========================================================================&lt;br /&gt;reset:&lt;br /&gt; ;initialisieren des Stackpointers&lt;br /&gt; ldi temp, RAMEND&lt;br /&gt; out SPL, temp&lt;br /&gt;&lt;br /&gt; ;Analogkomparatoren abschalten&lt;br /&gt; sbi ACSR,7&lt;br /&gt;&lt;br /&gt; ;Voreinstellungen für Uhrzeit&lt;br /&gt; ldi std10, 0x00&lt;br /&gt; ldi std01, 0x01&lt;br /&gt; ldi min10, 0x00&lt;br /&gt; ldi min01, 0x00&lt;br /&gt;&lt;br /&gt; ;Ausgabeports initianisieren PB7:0 = Ausgabe und 0&lt;br /&gt; ldi temp, 0xff&lt;br /&gt; out DDRB, temp&lt;br /&gt; ldi temp, 0x00&lt;br /&gt; out PORTB, temp&lt;br /&gt;&lt;br /&gt; ;Ports PD0, PB1, PB4, PB5 = Ausgabe und 1 / PB2, PB3 als Eingänge und pullup an&lt;br /&gt; ldi temp, 0b00110011&lt;br /&gt; out DDRD, temp&lt;br /&gt; ldi temp, 0b00111111&lt;br /&gt; out PORTD, temp&lt;br /&gt;&lt;br /&gt; ;INT0 und INT1 initialisieren&lt;br /&gt; ldi temp, 0b00001010 ;fallende Flanke an INT0 und INT1 ist Auslöser&lt;br /&gt; out mcucr, temp&lt;br /&gt; ldi temp, 0b11000000 ;INT0 und INT1 freischalten&lt;br /&gt; out gimsk, temp&lt;br /&gt;&lt;br /&gt; ;Timer/Counter1 (16Bit) initianisieren&lt;br /&gt; ;TCCR1B = 0 0 0 0 1 1 0 1 = no InputNoiseCanceler, InputCaptureEdgeSelect, Mode=CTC, Prescaler=1024&lt;br /&gt; ldi temp, 0x0d&lt;br /&gt; ;ldi temp, 0x0c ;prescaler auf /256 statt /1024&lt;br /&gt; out TCCR1B, temp&lt;br /&gt; ;OCR1A -  Top für Counter setzen = 3200&lt;br /&gt; ldi temp, 0x0c&lt;br /&gt; ldi temp2, 0x80&lt;br /&gt; out OCR1AH, temp&lt;br /&gt; out OCR1AL, temp2&lt;br /&gt; ;TIMSK --&gt; enabele OCIE1A output Compare Interrupt&lt;br /&gt; ldi temp, 0x40&lt;br /&gt; out TIMSK, temp&lt;br /&gt; ;TCNT1 auf 0 reseten&lt;br /&gt; clr temp&lt;br /&gt; out TCNT1H, temp&lt;br /&gt; out TCNT1L, temp&lt;br /&gt;&lt;br /&gt; ;Interrupt erlauben&lt;br /&gt; sei&lt;br /&gt;&lt;br /&gt;;===========================================================================&lt;br /&gt;;                        Hauptprogramm&lt;br /&gt;;===========================================================================&lt;br /&gt;&lt;br /&gt;main:&lt;br /&gt; ;Stunden darstellen - 10er Stelle&lt;br /&gt; mov temp, std10&lt;br /&gt; rcall convert&lt;br /&gt; out PORTB, temp2&lt;br /&gt; cbi PORTD, 5&lt;br /&gt; rcall wait2ms&lt;br /&gt; rcall ledoff&lt;br /&gt;&lt;br /&gt; ;Stunden darstellen - 1er Stelle - Dezimalpunkt blinkt im sekundentakt&lt;br /&gt; mov temp, std01&lt;br /&gt; rcall convert&lt;br /&gt; sbrc sek01, 0&lt;br /&gt; ori temp2, 0b10000000&lt;br /&gt; out PORTB, temp2&lt;br /&gt; cbi PORTD, 4&lt;br /&gt; rcall wait2ms&lt;br /&gt; rcall ledoff&lt;br /&gt;&lt;br /&gt; ;Minuten darstellen - 10er Stelle&lt;br /&gt; mov temp, min10&lt;br /&gt; rcall convert&lt;br /&gt; out PORTB, temp2&lt;br /&gt; cbi PORTD, 1&lt;br /&gt; rcall wait2ms&lt;br /&gt; rcall ledoff&lt;br /&gt;&lt;br /&gt; ;Minuten darstellen - 1er Stelle&lt;br /&gt; mov temp, min01&lt;br /&gt; rcall convert&lt;br /&gt; out PORTB, temp2&lt;br /&gt; cbi PORTD, 0&lt;br /&gt; rcall wait2ms&lt;br /&gt; rcall ledoff&lt;br /&gt;&lt;br /&gt; ;zurück zum Mainloop&lt;br /&gt; rjmp main&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;======================================================================&lt;br /&gt;;                     Unterprogramme&lt;br /&gt;;======================================================================&lt;br /&gt;&lt;br /&gt;takt:&lt;br /&gt; ;dieses Unterprogramm wird ein mal pro Sekunde angesprungen&lt;br /&gt; cli&lt;br /&gt; inc sek01&lt;br /&gt; cpi sek01, 0x0a&lt;br /&gt; brlo takt_ende&lt;br /&gt; clr sek01&lt;br /&gt; inc sek10&lt;br /&gt; cpi sek10, 0x06&lt;br /&gt; brlo takt_ende&lt;br /&gt; clr sek10&lt;br /&gt; inc min01&lt;br /&gt; cpi min01, 0x0a&lt;br /&gt; brlo takt_ende&lt;br /&gt; clr min01&lt;br /&gt; inc min10&lt;br /&gt; cpi min10, 0x06&lt;br /&gt; brlo takt_ende&lt;br /&gt; clr min10&lt;br /&gt; inc std01&lt;br /&gt; cpi std01, 0x04&lt;br /&gt; brlo takt_ende&lt;br /&gt; cpi std10, 0x02&lt;br /&gt; brlo takt_01&lt;br /&gt; clr std01&lt;br /&gt; clr std10&lt;br /&gt; rjmp takt_ende&lt;br /&gt;takt_01:&lt;br /&gt; cpi std01, 0x0a&lt;br /&gt; brlo takt_ende&lt;br /&gt; clr std01&lt;br /&gt; inc std10&lt;br /&gt; cpi std10, 0x0a&lt;br /&gt; brlo takt_ende&lt;br /&gt; clr std10&lt;br /&gt;takt_ende:&lt;br /&gt; sei&lt;br /&gt; reti&lt;br /&gt;&lt;br /&gt;;--------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;stunden_stellen: ;dieser Teil ist auch zum Stundn hochzählen&lt;br /&gt; inc std01&lt;br /&gt; cpi std01, 0x04&lt;br /&gt; brlo stunden_ende&lt;br /&gt; cpi std10, 0x02&lt;br /&gt; brlo stunden_01&lt;br /&gt; clr std01&lt;br /&gt; clr std10&lt;br /&gt; rjmp stunden_ende&lt;br /&gt;stunden_01:&lt;br /&gt; cpi std01, 0x0a&lt;br /&gt; brlo stunden_ende&lt;br /&gt; clr std01&lt;br /&gt; inc std10&lt;br /&gt; cpi std10, 0x0a&lt;br /&gt; brlo stunden_ende&lt;br /&gt; clr std10&lt;br /&gt;stunden_ende:&lt;br /&gt; reti&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;---------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;minuten_stellen: ;minuten bei tastendruck hochzählen&lt;br /&gt; inc min01&lt;br /&gt; cpi min01, 0x0a&lt;br /&gt; brlo minuten_ende&lt;br /&gt; clr min01&lt;br /&gt; inc min10&lt;br /&gt; cpi min10, 0x06&lt;br /&gt; brlo minuten_ende&lt;br /&gt; clr min10&lt;br /&gt;minuten_ende:&lt;br /&gt; reti&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;;---------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;convert:&lt;br /&gt; ;convertiert BCD (temp) zu 7segment (temp2)&lt;br /&gt; ldi ZL, LOW(charset&lt;&lt;1)&lt;br /&gt; ldi ZH, HIGH(charset&lt;&lt;1)&lt;br /&gt; add ZL, temp&lt;br /&gt; lpm temp2, Z+&lt;br /&gt; ret&lt;br /&gt;&lt;br /&gt;;---------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;ledoff:&lt;br /&gt; ;Anzeige ausschalten&lt;br /&gt; ldi temp, 0x00&lt;br /&gt; out PORTB, temp&lt;br /&gt; ldi temp, 0b00111111&lt;br /&gt; out PORTD, temp&lt;br /&gt; ret&lt;br /&gt;&lt;br /&gt;;---------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;wait2ms:&lt;br /&gt; ;verzögrung für 1 ms at 3,2768MHz&lt;br /&gt; ldi temp, 0x0d&lt;br /&gt; mov w1, temp&lt;br /&gt; clr w2&lt;br /&gt;wait2ms_loop:&lt;br /&gt; dec w2&lt;br /&gt; brne wait2ms_loop&lt;br /&gt; dec w1&lt;br /&gt; brne wait2ms_loop&lt;br /&gt; ret&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Man, da hab ich mir ja ne Naht zusammengetippt: da wird tatsächlich jede Stelle der Anzeige in einem eigenen Register hochgezählt. Und bei einem Überlauf natürlich kompliziert verglichen und gesprungen...&lt;br /&gt;mal sehn ob das noch einfacher zu lösen ist...&lt;br /&gt;&lt;br /&gt;Nun hab ich keinen Pin mehr frei. Das Bedienkonzept ist auch eine Sackgasse und die Genauigkeit ist noch weiter zu prüfen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Für meine nächse Uhr werde ich nen ATMega48 nehmen, der hat ein paar Beinchen mehr und es lässt sich dann auch noch eine Weckfunktion mit einbauen.&lt;br /&gt;&lt;br /&gt;p.s. natürlich hab ich auch noch eine Zeichentabelle für den BCD-7Segment-Umsetzer:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;; Carsetfile für BCD - zu - 7segment Umsetung&lt;br /&gt;.db 0b01110111, 0b00000011 ;0 ,1&lt;br /&gt;.db 0b00111110, 0b00011111 ;2, 3&lt;br /&gt;.db 0b01001011, 0b01011101 ;4, 5&lt;br /&gt;.db 0b01111101, 0b01010011 ;6, 7&lt;br /&gt;.db 0b01111111, 0b01011111 ;8, 9&lt;br /&gt;.db 0b01111110, 0b01101101 ;A, b&lt;br /&gt;.db 0b00101100, 0b00101111 ;c, d&lt;br /&gt;.db 0b01111100, 0b01111000 ;E, F&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7952529335375326616-3245406700515643178?l=dh8sz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dh8sz.blogspot.com/feeds/3245406700515643178/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://dh8sz.blogspot.com/2009/08/meine-erste-selbsgebaute-uhr.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/3245406700515643178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/3245406700515643178'/><link rel='alternate' type='text/html' href='http://dh8sz.blogspot.com/2009/08/meine-erste-selbsgebaute-uhr.html' title='Meine erste selbsgebaute Uhr'/><author><name>Matthias</name><uri>http://www.blogger.com/profile/12271142088971991602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oSyAAjotss0/Spvnhynl1KI/AAAAAAAAAA8/gxF53YTw2D8/s72-c/2313uhr03.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7952529335375326616.post-341851300426233595</id><published>2009-08-21T20:55:00.000+02:00</published><updated>2009-08-21T21:47:20.401+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny2313'/><category scheme='http://www.blogger.com/atom/ns#' term='ARDF'/><title type='text'>80m Fuchsjagdsender nach DH1DA</title><content type='html'>Beim stöbern nach interessanten Projekten bin ich auf den &lt;a href="http://www.darc.de/distrikte/p/30/Jugend/Projekte/DH1DA_80m_FOX.pdf"&gt;Fuchsjagesender von DH1DA&lt;/a&gt; gestoßen.&lt;br /&gt;&lt;br /&gt;( &lt;a href="http://de.wikipedia.org/wiki/Amateurfunkpeilen"&gt;Für alle die eine Fuchsjagt für einen blutigen Sport halten.&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;Hier ein Bild von meinem Aufbau (ohne Gehäuse):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oSyAAjotss0/So7v37wpF4I/AAAAAAAAAAs/Fk2dYkFvhxk/s1600-h/dh1da80mfox.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_oSyAAjotss0/So7v37wpF4I/AAAAAAAAAAs/Fk2dYkFvhxk/s320/dh1da80mfox.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5372495149713135490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Die Schaltung hab ich minimal abgewandelt:  R1 und C2 weggelassen. Der Attiny2313 hat schon einen gute Power-On-Reset eingebaut so das ich eine externe R/C-Kombo für überflüssig halte.&lt;br /&gt;Damit konnte das Layout der Platine vereinfacht werden, so das die (in meinen Augen) unsägliche Leiterbahnenkreuzung der Originalplatine wegfallen kann.&lt;br /&gt;&lt;br /&gt;(ok, ich bin faul, desshalb hier erstmal nur ein Q&amp;D Bild der Leiterseite):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oSyAAjotss0/So70i8P0z6I/AAAAAAAAAA0/mjr_hbamFDY/s1600-h/dh1da80mfox02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 230px;" src="http://4.bp.blogspot.com/_oSyAAjotss0/So70i8P0z6I/AAAAAAAAAA0/mjr_hbamFDY/s320/dh1da80mfox02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5372500286624812962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ein paar Freilufttests in leicht bebautem Gelände (also bei mir zu Hause) haben eine Reichweite von 200m ergeben.&lt;br /&gt;Der (frische) 9V-Block hat über einen Tag ohne zu schwächeln durchgehalten und tut nun  wo anders seinen Dienst.&lt;br /&gt;&lt;br /&gt;Dieses Projet werde ich bei Gelegenheit mal "modernisieren": Platine erstellen, SMD, usw. ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7952529335375326616-341851300426233595?l=dh8sz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dh8sz.blogspot.com/feeds/341851300426233595/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://dh8sz.blogspot.com/2009/08/80m-fuchsjagdsender-nach-dh1da.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/341851300426233595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/341851300426233595'/><link rel='alternate' type='text/html' href='http://dh8sz.blogspot.com/2009/08/80m-fuchsjagdsender-nach-dh1da.html' title='80m Fuchsjagdsender nach DH1DA'/><author><name>Matthias</name><uri>http://www.blogger.com/profile/12271142088971991602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oSyAAjotss0/So7v37wpF4I/AAAAAAAAAAs/Fk2dYkFvhxk/s72-c/dh1da80mfox.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7952529335375326616.post-4012341974392914920</id><published>2009-08-03T22:28:00.000+02:00</published><updated>2009-08-04T00:05:19.103+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Leuchtturm oder Froschaugen</title><content type='html'>Alles fing mit den Glasaugen eines Garten-Blechfrosches an: Diese sollte gelegentlich blinken/blitzen.&lt;br /&gt;Der Blechfrosch ist inzwischen weggerostet, aber die Schaltung (und die FW) für die Augen sind fertig...&lt;br /&gt;...naja, jetzt wo ich keine 2 Augen mehr brauche hab ich nur noch eine LED genommen.&lt;br /&gt;&lt;br /&gt;Hier erstmal die Schaltung:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oSyAAjotss0/SndJGDjvPLI/AAAAAAAAAAU/ZZO_S02QCa4/s1600-h/froschaugen.0.0.5a.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 108px;" src="http://1.bp.blogspot.com/_oSyAAjotss0/SndJGDjvPLI/AAAAAAAAAAU/ZZO_S02QCa4/s320/froschaugen.0.0.5a.jpg" alt="" id="BLOGGER_PHOTO_ID_5365837849418480818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Was macht das ganze ?&lt;br /&gt;Wenn die Umgebungshelligkeit ien bestimmtes Level unterschreitet fängt die LED an alle 2 sec zu blitzen.&lt;br /&gt;&lt;br /&gt;Sehr einfach und vlt auch effektiv: Der AVR braucht 4µa im Standby und die LED wird auch mit als Lichtsensor benutzt.&lt;br /&gt;&lt;br /&gt;hier nun die FW:&lt;br /&gt;&lt;code&gt;;  Version 0.0.5a by DH8SZ&lt;br /&gt;;     * stomsparversion&lt;br /&gt;;   * Helligkeitssteuerung über LED&lt;br /&gt;;  zum blinken von 1 LED - zwischen PB0(Anode) &amp;amp; PB1(Katode)&lt;br /&gt;;  Helligkeitserkennug über die LED zum ausschalten bei Tag&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.include "tn13def.inc"&lt;br /&gt;&lt;br /&gt;.def temp = R16&lt;br /&gt;&lt;br /&gt;.def w1 = R19&lt;br /&gt;.def w2 = R20&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;===============================================================================&lt;br /&gt;; alles leer ...&lt;br /&gt;&lt;br /&gt;.dseg&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;.eseg&lt;br /&gt; &lt;br /&gt;; noch ...&lt;br /&gt;;===============================================================================&lt;br /&gt;&lt;br /&gt;.cseg&lt;br /&gt;.org 0x000&lt;br /&gt; rjmp start&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; ;Waitloop - angepasst für 128kHz&lt;br /&gt;wait:&lt;br /&gt; ;wait for 12 ms&lt;br /&gt; ldi w1, 2&lt;br /&gt; clr w2&lt;br /&gt;wait_loop:&lt;br /&gt; dec w2&lt;br /&gt; brne wait_loop&lt;br /&gt; dec w1&lt;br /&gt; brne wait_loop&lt;br /&gt; ret&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;start:&lt;br /&gt;&lt;br /&gt; ; Watchdogtimer setzen: systemreset alle 2 sek.&lt;br /&gt; ldi temp, 0x0f&lt;br /&gt; out WDTCR, temp&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt; ; testen hell/dunkel&lt;br /&gt; ; DDRB (Datenrichrungsregister) alle auf Eingänge setzen, bis auf pb0&lt;br /&gt; ldi temp, 0b00000001&lt;br /&gt; out ddrb, temp&lt;br /&gt; ; LED über int. Pullup "laden" --&gt; pb1&lt;br /&gt; ldi temp, 0b00000010&lt;br /&gt; out portb, temp&lt;br /&gt; rcall wait&lt;br /&gt; ; Pullup wieder abschalten und 12 ms warten&lt;br /&gt; clr temp&lt;br /&gt; out portb, temp&lt;br /&gt; rcall wait&lt;br /&gt; ; testen ob LED noch "geladen" --&gt;ja=dunkel / nein=hell&lt;br /&gt; sbis pinb,1&lt;br /&gt; rjmp ende&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; ; DDRB (Datenrichtungsregister) auf pb0,pb1 Ausgänge setzen&lt;br /&gt; ldi temp, 0b00000011&lt;br /&gt; out ddrb, temp&lt;br /&gt; ; PB0 und PB1 kurz anschalten (pb0=1 und PB1=0)&lt;br /&gt; ldi temp, 0b00000001&lt;br /&gt; out portb, temp&lt;br /&gt; rcall wait&lt;br /&gt; ; PB0 und PB1 wieder aus&lt;br /&gt; clr temp&lt;br /&gt; out portb, temp&lt;br /&gt;&lt;br /&gt;ende:&lt;br /&gt;&lt;br /&gt; ; sleepmode klarmachen&lt;br /&gt; ldi temp, 0x30&lt;br /&gt; out mcucr,temp &lt;br /&gt; wdr  ; Watchdog zurücksetzen (damit der timer auch 2 sek. braucht...)&lt;br /&gt; sleep ; enter sleepmode&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;(ich hoffe das kann man auch lesen...)&lt;br /&gt;Mir ist auch nach mehrmaligem überfliegen keine wirkliche Optimierung mehr eingefallen.&lt;br /&gt;Sicher, das eine oder andere ginge bestimt. Aber wozu ? Die meiste Zeit ist der MC im Standby und wartet auf den Watchdog...&lt;br /&gt;&lt;br /&gt;Um eine 2. LED anzuschliessen müsste man eine separaten Port einrichten. LED1 wird halt "besonders" angesteuert.&lt;br /&gt;&lt;br /&gt;Für das ganze, eigentlich um einen DAuertest mit der Batterie zu fahren, hab ich auf die Schnelle einen PETling als Gehäuse genommen, und ein bisschen verziert.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oSyAAjotss0/SndLWvTxCYI/AAAAAAAAAAc/tyyXoLczKmE/s1600-h/Leuchtturm-komplett.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://1.bp.blogspot.com/_oSyAAjotss0/SndLWvTxCYI/AAAAAAAAAAc/tyyXoLczKmE/s320/Leuchtturm-komplett.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5365840335063812482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Das Ganze nochmal in Einzelteilen:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oSyAAjotss0/SndLpFrsAQI/AAAAAAAAAAk/mDoJm15xMbs/s1600-h/leuchtturm-teile.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_oSyAAjotss0/SndLpFrsAQI/AAAAAAAAAAk/mDoJm15xMbs/s320/leuchtturm-teile.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5365840650307371266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dinge die man noch verändern könnte: ALLES!  XD&lt;br /&gt;Wie gesagt, dieser Aufbau ist in erster Linie zum testen der Batterielebendsdauer. Ich schätze 0,5 bis 1 Jahr, aber genau werde ich das erst in etwa einem Jahr wissen...&lt;br /&gt;Die Hell/Dunkel Erkennung könnte optimiert werden - noch geht das ganze schon bei recht hoher Umgebungshelligkeit an.&lt;br /&gt;Statt eines kurzen Aufblitzens könnte ein Morsezeichen ausgegeben werden - das ginge aber zu Lasten der Batterielebendsdauer.&lt;br /&gt;Die ausgegebene Blinksequenz könnte programmierbar sein - ähnlich wie in &lt;a href="http://www.instructables.com/id/Programmable-LED/"&gt;Alex's Programmable LED&lt;/a&gt;&lt;br /&gt;(aber auch das wieder zu lasten der Haltbarkeit...)&lt;br /&gt;&lt;br /&gt;Und wozu ist das ganze gut ?:&lt;br /&gt;Ja eigentlich... &lt;br /&gt;Ursprünglich sollte das die Augensteuerung für den Blechfrosch werden, lässt sich aber bestimmt auch für andere GArtenDecoDInge verwenden. Ist bestimmt auch für Geocaching nützlich, oder für Nachtwanderungen oder für was man auch immer einen LED-Flasher mit Helligkeitssteuerung brauchen kann.&lt;br /&gt;(vlt Alarmanlagendummie oder Klingelknopfbeleuchtung oder ...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7952529335375326616-4012341974392914920?l=dh8sz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dh8sz.blogspot.com/feeds/4012341974392914920/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://dh8sz.blogspot.com/2009/08/leuchtturm-oder-froschaugen.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/4012341974392914920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/4012341974392914920'/><link rel='alternate' type='text/html' href='http://dh8sz.blogspot.com/2009/08/leuchtturm-oder-froschaugen.html' title='Leuchtturm oder Froschaugen'/><author><name>Matthias</name><uri>http://www.blogger.com/profile/12271142088971991602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oSyAAjotss0/SndJGDjvPLI/AAAAAAAAAAU/ZZO_S02QCa4/s72-c/froschaugen.0.0.5a.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7952529335375326616.post-6550839399609608080</id><published>2009-03-31T12:48:00.000+02:00</published><updated>2009-08-03T22:26:11.079+02:00</updated><title type='text'>Blog erstellt !</title><content type='html'>So, nachdem ich nach meinen Projekten gefragt wurde, fange ich mal hier an sie online zu stellen. -naja erstmal werde ich mich mit dem System anfreunden, mit dem Blog-System...&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oSyAAjotss0/SdH2TUV7blI/AAAAAAAAAAM/89cf-9k38xQ/s1600-h/you_are_being_monitored.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://4.bp.blogspot.com/_oSyAAjotss0/SdH2TUV7blI/AAAAAAAAAAM/89cf-9k38xQ/s320/you_are_being_monitored.jpg" alt="" id="BLOGGER_PHOTO_ID_5319303446639898194" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7952529335375326616-6550839399609608080?l=dh8sz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dh8sz.blogspot.com/feeds/6550839399609608080/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://dh8sz.blogspot.com/2009/03/blog-erstellt.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/6550839399609608080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7952529335375326616/posts/default/6550839399609608080'/><link rel='alternate' type='text/html' href='http://dh8sz.blogspot.com/2009/03/blog-erstellt.html' title='Blog erstellt !'/><author><name>Matthias</name><uri>http://www.blogger.com/profile/12271142088971991602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oSyAAjotss0/SdH2TUV7blI/AAAAAAAAAAM/89cf-9k38xQ/s72-c/you_are_being_monitored.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
