Ma scusa, nell'interruzione ci metti solo l'incremento del contatore e nel main metti un grosso switch-case, non mi sembra molto difficile e se vuoi fare altre cose mentre tieni l'orologio puoi mettere un flag che diventa true quando il programma entra nell'interruzione e nel main ci fai il solito switch-case dove si entra solo se il flag è vero.
Solo che in questo momento mi sorge un dubbio: perché scrivi in assembly? In MPLABX non c'è la possibilità di usare il C? Sarebbe decisamente più semplice e l'effetto che otterresti sarebbe più o meno lo stesso dato che non credo ti serva una roba performante al 100% con il minimo utilizzo di ROM possibile....
Ottenere 1 Hz precisissimo, 16f84a
Moderatore:
Paolino
0
voti
carlomusumeci ha scritto:scusatemi allora a questo punto faccio così?
Però non alimentare il tutto a 12V come nello schema, altrimenti friggi il povero PIC.
Altra possibilità è demandare tutta la parte di conteggio ad un RTC come il DS1307 o similari e usare il micro solo per leggerne i registri ed ottenere anni, mesi, giorni, ore, minuti e secondi
0
voti
certo,solitamente piu di 5 v non do al PIC,come funziona questo ds1307?
Arrownon conosco il linguaggio C,so solo l'assembly
-

carlomusumeci
353 5 7 - Sostenitore

- Messaggi: 526
- Iscritto il: 8 apr 2011, 0:35
1
voti
E' interessante il titolo del thread ma non viene specificata la precisione.
"Ottenere 1 Hz precisissimo, 16f84a"
Cosa significa precisissimo ? Quante parti per milione ?
A seconda di quello che intendi fare potrebbe essere sensato realizzarlo con il PIC 16F84A oppure devi andare su altre categorie di prodotto quali i real time clock ( RTC ).
Es. http://www.maximintegrated.com/en/products/digital/real-time-clocks/DS3231.html
"Ottenere 1 Hz precisissimo, 16f84a"
Cosa significa precisissimo ? Quante parti per milione ?
A seconda di quello che intendi fare potrebbe essere sensato realizzarlo con il PIC 16F84A oppure devi andare su altre categorie di prodotto quali i real time clock ( RTC ).
Es. http://www.maximintegrated.com/en/products/digital/real-time-clocks/DS3231.html
Ingegneria : alternativa intelligente alla droga.
-

dimaios
30,2k 7 10 12 - G.Master EY

- Messaggi: 3381
- Iscritto il: 24 ago 2010, 14:12
- Località: Behind the scenes
0
voti
Ciao
carlomusumeci, l'impiego degli RTC è una valida soluzione ma, se ti poni dei dubbi sul ricorso all'interrupt sulla base di un secondo primo, non credo che per te, al momento, con il PIC16F84 la cosa sia agevole da gestire.
Se non erro sono tutti (o quasi) chip che prevedono la comunicazione su I2C ed il tuo micro, tra l'altro, ne è privo.
Ti suggerirei di seguire l'indicazione di
simo85 (Post [12]); questa, a maggior ragione se hai una miriade di processi da tenere sotto controllo, mi sembra la cosa più "pulita".
Saluti
Se non erro sono tutti (o quasi) chip che prevedono la comunicazione su I2C ed il tuo micro, tra l'altro, ne è privo.
Ti suggerirei di seguire l'indicazione di
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8989
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
0
voti
avete ragione credo che la soluzione migliore per questo PIC sia quella nel post 12,consigliata da
simo85
-

carlomusumeci
353 5 7 - Sostenitore

- Messaggi: 526
- Iscritto il: 8 apr 2011, 0:35
0
voti
carlomusumeci ha scritto:il problema è che facendo avvenire un interrupt ogni secondo non potrei utilizzare il PIC per svolgere anche altre operazioni...poiché il programma viene interrotto in continuazione...
È vero l'esatto contrario. Gli interrupt servono per effettuare diverse gestioni allo stesso tempo, senza che una blocchi l'altra. Interrompere (per breve tempo) non è bloccare.
Big fan of ⋮ƎlectroYou! Ausili per disabili e anziani su ⋮ƎlectroYou
Caratteri utili: À È É Ì Ò Ó Ù α β γ δ ε η θ λ μ π ρ σ τ φ ω Ω º ª ² ³ √ ∛ ∜ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ∃ ∄ ∆ ∈ ∉ ± ∓ ∾ ≃ ≈ ≠ ≤ ≥
Caratteri utili: À È É Ì Ò Ó Ù α β γ δ ε η θ λ μ π ρ σ τ φ ω Ω º ª ² ³ √ ∛ ∜ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ∃ ∄ ∆ ∈ ∉ ± ∓ ∾ ≃ ≈ ≠ ≤ ≥
0
voti
Siano benedetti gli interrupt!
Come ha detto GuidoB le interruzioni servono proprio a quello, poi come ho detto prima, in 1s sai quante cose ci fa il micro?!
Per esempio il codice di un robot che stiamo facendo nel main certe azioni vengono svolte solo in caso di flag positivo attivato da interrupt....
p.s. se vuoi un consiglio da uno studente diplomando e inesperto (solo 3 anni in questo mondo) impara il C, non è difficile come credi, anzi se non è più facile...
Come ha detto GuidoB le interruzioni servono proprio a quello, poi come ho detto prima, in 1s sai quante cose ci fa il micro?!
Per esempio il codice di un robot che stiamo facendo nel main certe azioni vengono svolte solo in caso di flag positivo attivato da interrupt....
p.s. se vuoi un consiglio da uno studente diplomando e inesperto (solo 3 anni in questo mondo) impara il C, non è difficile come credi, anzi se non è più facile...
0
voti
Già...me ne sto accorgendo solo ora scrivendo il Firmware...in questo modo nel main potrei anche pilotare un lcd per altre operazioni,mentre nell'interrupt svolgo le operazioni di incremento registri orologio...e poi visto che l'impulso a 1 Hz viene generato dall'esterno l'incremento dei registri avviene sempre in modo preciso...
-

carlomusumeci
353 5 7 - Sostenitore

- Messaggi: 526
- Iscritto il: 8 apr 2011, 0:35
0
voti
no, non è corretto e non è quello che è stato riportato nel Post [12]; poi, naturalmente, puoi fare come vuoi.carlomusumeci ha scritto:mentre nell'interrupt svolgo le operazioni di incremento registri orologio...
Per principio, la routine di interrupt la devi "impegnare" lo stretto indispensabile, e gli incrementi dei tuoi registri (al pari della gestione di un lcd) li esegui nel tuo "main".
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8989
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 28 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)




