aiutare con orologio in tempo reale

S

shaneelal

Guest
Io non ne so molto di clocks.I in tempo reale 'm utilizzando in un progetto insieme con un PIC18F452.Il dispositivo sarà in continuo senso una misurazione e l'abbiano conservato, l'orologio in tempo reale dovrebbe inviare un interrupt al PIC ogni 2 secondi.Quando si verifica l'interrupt, il PIC deve trasmettere la misurazione tramite RS232.
Qual è il modo simplist di avere questa interruzione si verificano.I "m utilizzando mc18 compilier. Io non sono sicuro di come anche di trasmissione, quando si verifica l'interrupt. Qualsiasi aiuto sarà apprezzato.

 
Per questo PIC applicazione può generare intervallo di 2 secondi da se stesso utilizzando un timer interno, ma se si desidera utilizzare esterni RTC è possibile utilizzare DS1307/1377 da Maxim.
(Http://pdfserv.maxim-ic.com/en/ds/DS1307.pdf)
Questo dispositivo è in grado di generare interrupt ogni secondo quindi hai bisogno di contare fino a 2 per 2 secondi interrupt.
Su interrupt avrete bisogno di prendere i dati da memeory PIC e inviarlo tramite RS-232 driver ..

 
Salve,

RTC DS1302 da MAXIM / Dallas è troppo buono e Philips I2C PCF8583.

 
Philips PCF8593 è meglio.
con un altro microcontrollore uso modo con il cristallo 32.768
è possibile utilizzare PIC16F84A o 89C2051.
goto per maggiori informazioni:
http://chaokhun.kmitl.ac.th/ ~ kswichit /

 
Potrebbe dirmi in dettaglio come il PIC si può interrompere ogni 2 secondi.Altre cose devono essere continiously andare avanti fino si verifica l'interrupt.Quando si verifica l'interrupt, il PIC trasmette l'ultimo valore memorizzato, che è desiderato da trasmettere.Sto utilizzando Timer0 e timer1 per eseguire le operazioni nel mio codice.

 
Usare il timer / contatore registro dei PIC e ci sarà un interrupt ogni overflow.

 
salve,
per ottenere un interrupt 1 sec ..per 18F452 ur (la freq di funzionamento è 40Mhz rito?)
se che il caso ..utilizzando timer1 che è di 16 bit, un overflow prenderà 6.5ms con un prescalar di 1.questo u possibile utilizzare un registro di continuare a 153 loop per ARD tempo ..Ogni overflow cuz un interrupt ..Così, quando conta fino a 153 il tempo ..poi farà il u roba desidera.se u want a 2 sec interrupt, loop per 2 * 153 tempo.

1 / (2 ^ 16 * 100N) = 153

HPE aiutaAggiunto dopo 2 minuti:Oh, sì, ricordati di tenere ur routine di servizio il più breve possibile ..
preferibilmente, nel solo ISR chiaro ur interrompere decremento n bandiera del conte ..

 
salve,

U possibile utilizzare Dallas DS3107 RTC.Può essere configurato per outputing 1Hz onda quadra su uno dei suoi perni.Funziona sul protocollo I2C.U può dare questa ondata saure 2 o timer o qualsiasi interrupt pin su PIC.In u ISR può verificare per 2 sec mediante semplice variabile.Se due secondi r OVR poi u può avviare il trasferimento di serie.

Se ur RTC utilizzando solo per ottenere 1sec interrompere e non ha altra funzione, e se Timer1 pin OSC di PIC18F452 ur r free.then u possibile collegare 32.678Khz cristallo a Timer1 pin OSC (stesso modo in cui l'uso di cristallo per OSC master., Ma con 20pF cap).
e carico timer1 con 0x8000 darà u interrupt su ogni 1sec.Questo può elliminate u ur RTC anche.

Configurare TIMER 1 OSC Per la sorgente esterna.
Con i migliori saluti.

 
Hi ..Ho alcuni problemi con DS1307 ..Ho costruito un orologio e scrivo software per leggere DS1307 su ogni secondo ...Ho trovato che il tempo non è corretto quando operano circa un giorno ..Ora sarà più lento di circa 1 minuto ..Credo perché ho letto da DS1307 ogni secondo ..Se ho letto ogni ora funziona meglio ..Ma ho bisogno di visualizzare l'orologio ogni secondo ..Qualsiasi suggerisco per algorithym o qualsiasi altro modo per rendere più preciso

 
hope u fatta non di progettazione con resistenza di molti o di alti valori, per il punto di potenza saving.second è per i tempi.
se così necessaria può essere un trucco avrebbe funzionato?

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />
 
Quote:

Hi ..
Ho alcuni problemi con DS1307 ..
Ho costruito un orologio e scrivo software per leggere DS1307 su ogni secondo ...
Ho trovato che il tempo non è corretto quando operano circa un giorno ..
Ora sarà più lento di circa 1 minuto ..
Credo perché ho letto da DS1307 ogni secondo ..
Se ho letto ogni ora funziona meglio ..
Ma ho bisogno di visualizzare l'orologio ogni secondo ..
Qualsiasi suggerisco per algorithym o qualsiasi altro modo per rendere più preciso
 
Mi sto costruendo un dispositivo che misura m wirespeed.I 'utilizzando l'uscita di un encoder come input di impulsi per m PIC.I' utilizzando Timer0 al tempo 100 impulsi.Timer1 conterà la velocità pulses.The sarà poi calculated.I am a trasmettere questa velocità ogni 2 seconds.The misura wirespeed dovrebbe essere in corso fermandosi solo per trasmettere il wirespeed.Non so come posso utilizzare un altro timer per creare un interrupt ogni 2 secondi e ancora mantenere timming 100 impulsi e il calcolo della velocità.

I "m M41ST85Y usando l'orologio in tempo reale. Voglio solo ricevere un interrupt di questo orologio ogni 2 secondi. I" m, aventi un sacco di difficoltà a capire il codice C per farlo m task.I 'usando MPLAB C18 compiler.
Tutto quello che finora è questo

Codice:

/ / configure I2C

OpenI2C (MASTER, SLEW_OFF);

SSPADD = 9; / / 400kHz clock Baud (9) @ 16MHz

/ / 100kHz clock Baud (39) @ 16MHz
 
Salve,

ok, cercherò di Ofer qualche aiuto, ma non so 18F e non so C!

Il chip RTC si utilizza OTT sembra un po 'per l'uso.Ma in fondo, una volta che si accende il RTC, dovrebbe iniziare il conteggio, e spesso i chip RTC impulso su uno dei loro ppins ogni secondo, ma non posso vedere alcun riferimento a un comportamento del genere su questo particolare - non che doesnt esiste.Quello che dovete fare è leggere la memoria RTC - proprio come si leggevano da qualsiasi della sua memoria.Inferiore 4 bit di 0x01 affrontare sono i secondi.Non ho mai usato questo chip, ho trovato un foglio, ma doesnt andare fino a pagina 134!quindi assumersi le proprie uno diverso da quello che hai, quello che ho trovato è http://katalog.elektroda.net/download.php?id=44521.Per leggerlo è necessario saper leggere I2C, posso pubblicare qualche codice generico campione in assemblea per 16F serie, ma non so se questo ti aiuterà.Lei parla di una "funzione EEByteWrite", ciò Scrivi a I2C o PIC EEPROM?se è I2C, quindi presumo che anche una funzione di lettura?
Se fossi in te, probabilmente sarei bin l'RTC e usare appena un ritardo nel vostro programma.Ecco un codice che darà un ritardo di 2 secondi per un PIC esecuzione a 4MHzCodice:

cblock

d1

d2

d3

endc; 1999996 cicli

movlw 0x11

movwf d1

movlw 0x5D

movwf d2

movlw 0x05

movwf d3

Delay_0

decfsz d1, f

goto $ 2

decfsz d2, f

goto $ 2

decfsz d3, f

goto Delay_0; 4 cicli

goto $ 1

goto $ 1----------------------
 
hope this helps
http://www.winpicprog.co.uk/pic_tutorial_i2c_clock_board.htm<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorriso" border="0" />
 
Hai

questo programma sta lavorando per ds1337 RTC con sette segmenti per pic
16F877
sarà utile per u
quindi premere il pulsante mi ha aiutato
Ci dispiace, ma è necessario il login per visitare questo allegato

 

Welcome to EDABoard.com

Sponsor

Back
Top