problemu

A

auto_mitch

Guest
Mój projekt jest wbudowany budzik.I mają być wyświetlane na LCD aktualną datę i czas oraz mieć dostęp do klawiatury w menu, w którym można ustawić godzinę alarmu.
I spróbuj użyć DS1307 funkcji codevision a ja nie mogę dostać coś na lcd.I nie wiem, co dzieje się źle.Jedyną wartością, że mogę dostać poprzez wyświetlanie zawsze jest 128 sekund.Can you help me?

Kod:

/ / I2C Bus funkcji

# asm

. equ __i2c_port = 0x15; PORTC

. equ __sda_bit = 1

. equ __scl_bit = 0

# endasm/ / Alfanumeryczny LCD Moduł funkcji

# asm

. equ __lcd_port = 0x18; PORTA

# endasm

# include <mega16.h>

# include <i2c.h>

# include <lcd.h>

# include <stdio.h>

# include <stdlib.h>

# include <delay.h>

# include <ds1307.h>char secbuffer [16];void main (void)

(

unsigned char h, m, s;/ / Inicjalizacja LCD.

lcd_init (16);

/ / Zainicjowanie I2C.

i2c_init ();

delay_ms (100);

/ / Inicjalizacja DS1307 RTC

rtc_init (0,0,0);

delay_ms (100);

rtc_set_time (04,05,22);while (1)

(

rtc_get_time (& H & M & S);

sprintf (secbuffer, "% 02d", s);

lcd_gotoxy (6,0);

lcd_puts (secbuffer);

);

)
 
Sprawdź połączenia,

Jeśli nie używasz kopii zapasowych baterii, połączenia Pin 3 do GND.

Sprawdź 32kHz oscylator.

 
Czy rezystory pullup na linii SCL i SDA są propoerly zainstalowane?

 
Mam już sprawdzone wszystkie połączenia i wyglądają OK.Tak rezystory pullup są prawidłowo zainstalowane i ogniwowa bateria jest podłączona.Osc jest 32.768kHz.

 
Bit 7 na DS1307 jest prawdopodobnie zestaw do powstrzymania.Musisz ustawić bit rozpocząć DS1307.

Przeczytaj arkusz danych i wyszukiwania w internecie, nie ma wielu informacji na DS1307 RTC.

Zas?Czy masz baterii podłączyć do DS1307?

 

Welcome to EDABoard.com

Sponsor

Back
Top