Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Delay software

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

2
voti

[11] Re: Delay software

Messaggioda Foto Utenteobiuan » 7 gen 2016, 17:51

a mio avviso se devi scrivere una routine che possa essere chiamata da qualunque contesto, l'unico modo è far sì che la routine non modifichi nulla.

Nel tuo caso, essendo un delay, l'unico modo che hai per renderla thread safe e rientrante (due termini che in assembler assumono significato quando vi sono IRQ attivi e la routine viene chiamata anche dalle ISR) è usare questi accorgimenti:

- blocco degli interrupt (general interrupt flag a 0)
- push dei registri utilizzati
- esegui il ritardo
- pop dei registri
- sblocco interrupt

se non blocchi gli interrupt non ottieni una routine thread-safe, se non pushi e poppi (orroooore!) non la ottieni rientrante.
_______________________________________________________
Gli oscillatori non oscillano mai, gli amplificatori invece sempre

Io HO i poteri della supermucca, e ne vado fiero!
Avatar utente
Foto Utenteobiuan
5.824 2 10 12
Master
Master
 
Messaggi: 930
Iscritto il: 23 set 2013, 23:45

0
voti

[12] Re: Delay software

Messaggioda Foto UtenteTardoFreak » 7 gen 2016, 19:17

Se la richiesta è una routine di ritardo che sostanzialmente blocchi la macchina per un certo tempo (83us nel tuo caso) si usano i loop con aggiunta di un numero opportuno di NOP per aggiustare il tempo di esecuzione.
Bisognerebbe sapere se nel tempo è incluso il tempo dell'istruzione di chiamate, ma questo è un dettaglio.
Per scriverla bene si usa il metodo indicato da Foto Utenteobiuan.
Avatar utente
Foto UtenteTardoFreak
73,4k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15764
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[13] Re: Delay software

Messaggioda Foto UtenteIanero » 7 gen 2016, 19:26

Era una domanda uscita a un esame qualche anno fa, non c'è nessun programma completo da guardare per capire.
Però vabbè, ho capito comunque, vi ringrazio tutti :D
Servo, dai a costui una moneta, perché ha bisogno di trarre guadagno da ciò che impara.
Euclide.
Avatar utente
Foto UtenteIanero
7.314 5 8 13
Master EY
Master EY
 
Messaggi: 3772
Iscritto il: 21 mar 2012, 15:47

1
voti

[14] Re: Delay software

Messaggioda Foto Utentelelerelele » 7 gen 2016, 20:26

il PIC in oggetto ha solo 1 timer da 8 bit. mi pare che non abbia neanche interrupt......

prova a dare un'occhiata qua...http://www.electroyou.it/forum/viewtopic.php?t=61869&p=621790#p621790

saluti.
Avatar utente
Foto Utentelelerelele
2.191 3 7 8
Expert EY
Expert EY
 
Messaggi: 2511
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[15] Re: Delay software

Messaggioda Foto UtenteIanero » 7 gen 2016, 22:20

Sì, infatti non ha interrupt, come deduco da Appendix A: Compatibility.

http://ww1.microchip.com/downloads/en/D ... 30453E.pdf
Servo, dai a costui una moneta, perché ha bisogno di trarre guadagno da ciò che impara.
Euclide.
Avatar utente
Foto UtenteIanero
7.314 5 8 13
Master EY
Master EY
 
Messaggi: 3772
Iscritto il: 21 mar 2012, 15:47

1
voti

[16] Re: Delay software

Messaggioda Foto Utenteposta10100 » 2 apr 2016, 16:29

E se scrivere i loop ti annoia...

vai qui, inserisci due numeri e hai il codice quasi pronto.
Devi solo ricordarti di togliere quello che trovi tra le keyword "cblock" e "endc", quelle sono le viariabili da dichiarare nella funzione in C o nell'asm.

O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.420 4 9 13
Master EY
Master EY
 
Messaggi: 4786
Iscritto il: 5 nov 2006, 0:09

0
voti

[17] Re: Delay software

Messaggioda Foto UtenteIanero » 2 apr 2016, 17:03

:ok: ^_^
Servo, dai a costui una moneta, perché ha bisogno di trarre guadagno da ciò che impara.
Euclide.
Avatar utente
Foto UtenteIanero
7.314 5 8 13
Master EY
Master EY
 
Messaggi: 3772
Iscritto il: 21 mar 2012, 15:47

Precedente

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti