Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Imprecisione su Timer0 (PIC18)

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[21] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto Utentethexeno » 5 giu 2014, 17:47

L'avevo pure letto qualche tempo fa.. #-o
Intanto provo ad applicarlo, appena riesco.

Ho due domande/osservazioni:
1. la ISR quand'è che si considera troppo lunga? Dipende dalla mia applicazione (quanto altri interrupt possono stare inattivi, quanto il main può non essere eseguito ecc)?

2. Oggi, come più di sei mesi fa, l'homepage del tuo sito è infetta da un trojan noto (Clickjack: http://www.avgthreatlabs.com/virus-and-malware-information/info/js-clickjack/)
Per entrare nella tua pagina dovrei disattivare l'antivirus ecc, ma non mi fido. Fallo sapere a chi il sito lo ospita, capita che certi provider siano vittime di infezioni (http://forums.computeractive.co.uk/showthread.php?t=237119)
Avatar utente
Foto Utentethexeno
235 5 9
Frequentatore
Frequentatore
 
Messaggi: 298
Iscritto il: 12 apr 2010, 18:28

0
voti

[22] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto UtenteWALTERmwp » 5 giu 2014, 18:14

thexeno ha scritto:la ISR quand'è che si considera troppo lunga?
... : quando dura troppo;
thexeno ha scritto:Dipende dalla mia applicazione
... : si;
thexeno ha scritto:(quanto altri interrupt possono stare inattivi
... : quanto vuoi tu, dipende dalla "urgenza" o dalla necessità di mandare in esecuzione il codice associato all'interrupt in causa e o agli altri;
thexeno ha scritto:quanto il main può non essere eseguito ecc)?
... : quanto vuoi tu, dipende dalla "urgenza" o dalla necessità di mandare in esecuzione il codice del main.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8981
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[23] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto Utentethexeno » 5 giu 2014, 18:20

Grazie Walter, forse ti chiederai anche il perché di certe domande apparentemente lapalissiane... ma è che mi hanno sempre detto, riassumendo, "COOOSA? Modifichi due variabili e fai addirittura un if nella ISR?? Metti nel main e fai stare il meno possibile nella ISR o ti boccio ". Da allora sono paranoico :lol:
Avatar utente
Foto Utentethexeno
235 5 9
Frequentatore
Frequentatore
 
Messaggi: 298
Iscritto il: 12 apr 2010, 18:28

0
voti

[24] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto Utentethexeno » 5 giu 2014, 20:06

Ok Foto UtentePaolino, mi piace l'idea della soluzione sw che hai usato.
In pratica e incomprensioni a parte, hai un timer0 che va molto più veloce del timer2 e "campiona" i valori di quest'ultimo timer. Così la variabile Duty di un pin, se è inferiore al timer2, lo pilota a 0 e viceversa.
Ma così il dutycycle con valore più basso è quello che si accenderà prima e rimarrà tale fino al rollover del timer2: in questo modo, la variabile più piccola definisce un dutycycle più elevato? E' una precisazione ai commenti del tuo codice, nulla di più, nel caso avessi ragione basta invertire l'assegnazione delle porte. (non l'ho fisicamente provato eh..)

Mi hai fatto venir voglia di capire bene anche questa http://www.electroyou.it/tardofreak/wiki/pic18f47j53-come-fare-un-pwm-facile-e-multicanale.. che a prima vista non mi pare semplicissima.
Avatar utente
Foto Utentethexeno
235 5 9
Frequentatore
Frequentatore
 
Messaggi: 298
Iscritto il: 12 apr 2010, 18:28

2
voti

[25] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto UtenteWALTERmwp » 5 giu 2014, 23:35

No, non ho la presunzione di sottovalutare le domande ... sono le risposte che non dovrebbero, dal mio punto di vista, sconfinare nella presunzione.
Ma non è nemmeno il caso delle risposte che ti ho dato.
E' comprensibile, in generale, per lo scopo fondamentale che dovrebbe rivestire la routine di interrupt, una esecuzione il più rapida possibile della stessa.
Scritto questo (e immagino anche da altri, più competenti in materia, condiviso) tutto poi si determina in base alle esigenze applicative: reattività rispetto ad un determinato evento, azioni da compiere a seguito dell'insorgenza di un interrupt, processi o altre elaborazioni che rimangono in sospeso ...
Se non stai lavorando su un hardware multi-processore, il microcontrollore, o fa una cosa o ne fa un'altra per quanto tu possa ottimizzare la schedulazione dei "processi".
Se scrivi il tuo programma in assembler (o anche in assembler) percepisci in modo differente la sequenzialità delle operazioni rispetto ad un codice scritto con un linguaggio superiore, poi ovviamente dipende tutto dalla persona.
Questa, se vuoi puoi considerarla come una risposta ai tuoi dubbi che, ovviamente, da parte mia, non possono essere fugati con stime o tempistiche predefinite: non avrebbe senso.
Penso stia a te trovare il giusto equilibrio nella distribuzione delle risorse temporali e nel posizionamento, all'interno del programma, di una determinata elaborazione.
A volte, facendo considerazioni per eccesso si vedono le cose in maniera differente; per esempio, a seguito dell'intervento di un determinato interrupt, potresti anche decidere, una volta entrato nella routine, di non aggiornare i registri, mascherare tutti gli altri che avevi predisposto e fare partire un'elaborazione che dopo due giorni è ancora lì che sta "girando".
Insomma, i limiti li trovi tu.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8981
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[26] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto Utentethexeno » 6 giu 2014, 16:35

Sei sempre molto chiaro Walter. Grazie per il supporto, a buon rendere.
Avatar utente
Foto Utentethexeno
235 5 9
Frequentatore
Frequentatore
 
Messaggi: 298
Iscritto il: 12 apr 2010, 18:28

0
voti

[27] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto Utentegrandegiove » 12 giu 2014, 11:59

thexeno ha scritto:"COOOSA? Modifichi due variabili e fai addirittura un if nella ISR?? Metti nel main e fai stare il meno possibile nella ISR o ti boccio "



Detto così non ha nessun senso. Come avete già detto bene: dipende assolutamente dall'applicazione. :ok:
Avatar utente
Foto Utentegrandegiove
1.151 1 4 8
Expert
Expert
 
Messaggi: 517
Iscritto il: 18 ott 2010, 9:59

0
voti

[28] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto Utentethexeno » 12 giu 2014, 15:59

Thanks.
Avatar utente
Foto Utentethexeno
235 5 9
Frequentatore
Frequentatore
 
Messaggi: 298
Iscritto il: 12 apr 2010, 18:28

1
voti

[29] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto UtentePaolino » 14 giu 2014, 8:34

thexeno ha scritto:Ok Foto UtentePaolino... E' una precisazione ai commenti del tuo codice, nulla di più, nel caso avessi ragione basta invertire l'assegnazione delle porte. (non l'ho fisicamente provato eh..)

Foto Utentethexeno, onestamente è da parecchio che non guardo quel codice. Può anche darsi che i commenti non li abbia corretti dopo una prima stesura del codice (se fosse, me ne scuso).

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[30] Re: Imprecisione su Timer0 (PIC18)

Messaggioda Foto Utentethexeno » 14 giu 2014, 16:16

Foto UtentePaolino, anche a te l'homepage del tuo sito ti da problemi su un trojan?
Avatar utente
Foto Utentethexeno
235 5 9
Frequentatore
Frequentatore
 
Messaggi: 298
Iscritto il: 12 apr 2010, 18:28

PrecedenteProssimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti