DS1337 e 16F877a

K

kandy71

Guest
Salve,
I utilizzando il DS1337 con il DS32KHZ connessi con la 16F877a, tuttavia, l'orologio perde 1 secondo ogni minuto.Non riesco a capire perché.
Ho fatto qualcosa di sbagliato?Posso calibrare l'orologio?

Grazie

 
Non hai veramente dato un sacco di andare avanti, potrebbe essere un problema di software o problema hardware, ho avuto il mio stesso problema a volte agobut era compreso tra il 1-8 minuti e l'ho trovato era un issuse software (bug) corretta e ha funzionato ok

che lingua stai picbaisc ASM usinf?

wizpic

 
Salve,
la ringrazio per la risposta
Ho usato CCS con il driver per la ds1307

 
Ci dispiace se ho posto di nuovo.Ma qualcuno sa come risolvere questo problema?

 
Questo è il mio codice

Codice:

# include <16F877A.h>

# device *= 16

# device ICD = TRUE

# device adc = 8# FUSES NOWDT / / No Watch Dog Timer

# FUSES SA / / Osc ad alta velocità (> 4MHz)

# FUSES PUT / / Power Up Timer

# FUSES NOPROTECT / / codice non protetto dalla lettura

# FUSES NODEBUG / / No modalità di debug per ICD

# FUSES NOBROWNOUT / / No reset brownout

# FUSES NOLVP / / No prgming bassa tensione, B3 (PIC16) o B5 (PIC18) utilizzato per l'I / O

# FUSES NOCPD / / No protezione EE

# FUSES% WRT_50 / / Bassa metà della memoria di programma è protetto in scrittura# usano il ritardo (clock = 18432000)

# use rs232 (baud = 9600, parity = N, xmit = PIN_C6, AN = PIN_C7, bits = 8)

# ifndef DS1337_SDA

# define DS1337_SDA PIN_C4

# define DS1337_SCL PIN_C3

# endif# usa i2c (master, sda = DS1337_SDA, scl = DS1337_SCL)

# include <LCD.C>

# include "ds1337.h"
/ / Programma principale

void main (void)

(

date_time_t dt;

ds1337_init ();

dt.month = 12; / / Dicembre

dt.day = 31; / / 31

dt.year = 06; / / 2006

dt.hours = 23; / / 23 ore (11 in 24 ore-time)

dt.minutes = 59; / / 59 minuti

dt.seconds = 50; / / 50 secondi

ds1337_set_datetime (& dt);DS1337_read_datetime (& dt);lcd_init ();

printf ( "Start \ n \ r");while (true)

(

delay_ms (300);

ds1337_read_datetime (& dt);

printf (lcd_putc, "\ f \% 02d / \% 02d / \% 02d \ n", dt.day, dt.month, dt.year);

printf (lcd_putc, "\% 02d: \% 02d: \% 02d", dt.hours, dt.minutes, dt.seconds);

)

)

 

Welcome to EDABoard.com

Sponsor

Back
Top