Archiv verlassen und diese Seite im Standarddesign anzeigen : Uhrzeit über I2C programmieren (DS1307)
papuadive
16.12.2010, 17:49
Hi Leute!
Brauche wieder einmal eure Hilfe!
Möchte auf ein 4x20 LCD die Uhrzeit (Datum) ausgeben (Tag-Monat-Jahr)!
Als Baustein habe ich den DS 1307 Z mit einem Quarz 32768 und eine Bat. 3V ausgewählt.
Programmieren möchte ich in C (AVR-Studio) einen Mega 32L, wobei ich die Pin's PC0/PC1 dafür vorgesehen habe.
Leider habe ich keine Ahnung, wie ich eine Zeit realisieren kann. Gibt's vielleicht schon eine Funktion dafür.
Danke
Pap
BurningWave
16.12.2010, 18:08
Ich habe mal ein paar Funktionen zum Ansteuern dieser RTC mittels TWI geschrieben. Vielleicht helfen sie dir weiter.
Ich habe das DS1307 im Moment an einem Atmega mit 16x2 LCD am laufen. Ich benutze zur Ansteuerung die Libs von Peter Fleury. Damit lässt sich sowohl das RTC einfach auslesen als auch das LCD einfach ansteuern. Bei Bedarf kann ich mein Projekt zur Verfügung stellen. Ist bestimmt nicht optimal programmiert (bin noch Anfänger) aber es sollten die Vorgänge verständlich sein. Hab das Projekt nur grade nicht zur Hand (liegt auf meinem demontierten Desktop-PC)
Mahlzeit!
Sieh auch auch noch eine Verbindung vom square wave out (SQW/OUT) zu einem der externen Int Pins des AVR vor.
Dann brauchst du die Zeit nur zu jeder vollen Sekunde bei einem externen Interrupt auslesen und hast den Rest der Sekunde zur Verfügung was zum Stellen der Uhr zu tun (Tasten/GPS o.ä.).
Die Zeit selber legst am Besten in einem Feld aus bytes (uint8_t) ab.
Schreiben in ein LCD geht dann relativ problemlos durch Addition von 0x30 pro Stelle, da der DS1307 alles schön in Zehnern und dem Rest im Speicher hat und von sich gibt :)
http://www.asciitable.com/
Viel Spaß!
papuadive
17.12.2010, 17:42
Hi Arkon,
bitte kannst du mir dein Projekt (Code usw.) zukommen lassen.
Wäre super!
Dank dir schon Mal vorab!
Gruß Papua
Hier mein mal Projekt. Arbeitet mit einem 16x2 LCD. Das RTC hängt an PIN 28 und 27 vom Atmega.
papuadive
25.12.2010, 15:17
Hi Arkon!
Danke für dein Projekt!
Frage: Ist die Library von Peter Fleury auch für ein Display 4x20 Zeichen ausgelegt? Bei mir funktioiert die Anzeige nicht so richtig! Bei mir hängt das LCD-Display (HD44780) auf
Port D (RS=D2, R/W=GND, E=D3, DB4=D4,DB5=D5, DB6=D7, DB7=7)
Also 4-Bit Mode. Muss zuerst die Anzeige hinkriegen, erst dann geht's mit der Zeit weiter!
Danke Pap
Meine Konfiguration!
LCD.h
#define LCD_IO_MODE 1
#define LCD_PORT PORTD /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN 4 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 5 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 6 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 7 /**< pin for 4bit data bit 3 */
#define LCD_RS_PORT LCD_PORT /**< port for RS line */
#define LCD_RS_PIN 2 /**< pin for RS line */
#define LCD_RW_PORT LCD_PORT /**< port for RW line */
#define LCD_RW_PIN 5 /**< pin for RW line */
#define LCD_E_PORT LCD_PORT /**< port for Enable line */
#define LCD_E_PIN 3 /**< pin for Enable line */
Die Lib müsste auch mit 20x4 Displays funktionieren. Ich habe es aber noch nicht ausprobiert da mir zum debuggen im moment mein 16x2-Display reicht.
papuadive
25.12.2010, 18:27
Zeichen werden bei mir ausgegeben, aber alles durcheinander....
Irgendwie ganz komisch...
Bei der Konfig. habe ich ja hoffentlich auch nicht falsch gemacht???
Danke Pap
papuadive
28.12.2010, 18:47
Hi Arkon!
Habe endlich das mit der LCD-Ausgabe hinbekommen!
Zeitausgabe via LCD , Std.-Min.-Sek. funktioniert!
Nur habe ich keine Ahnung, wie das mit dem Datum Tag-Monat-Jahr funktioniert. Macht das der Baustein (DS 1307) selber und muss nur den Tag auf Adr. 4, Monat Adr. 5 und das Jahr auf Adr. 6 abholen und am Display anzeigen lassen. Oder benötigt das wieder ein Stück Code?
Danke Pap
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.