Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 17 novembre 05, 11:48   #1 (permalink)  Top
User
 
Data registr.: 28-05-2005
Residenza: Roma
Messaggi: 660
Perfetto, grazie a voi il problema interrupt è risolto, quindi grazie, adesso ultima domandina sulla temporizzazione......(se divento troppo palloso non rispondete....)

L'ultimo (spero) cruccio rimastomi è: se io metto un quarzo da 4 Mhz quanto dura il tempo di esecuzione di una singola istruzione?

Secondo i miei calcoli se il quarzo è da 4 Mhz, il PIC esegue 4 milioni di istruzioni al secondo, quindi una sola istruzione dovrebbe durare 1/4Mhz, cioè 250 nanosecondi, non vi sembra un valore un pò troppo basso?

Avrei realizzato questa routine di ritardo secondo me funziona ma un parere di chi ne sa più di me è gradito: eccola...

DELAY MOVLW 254
MOVWF CONTALTO2
RISTCONT MOVLW 254
MOVWF CONTALTO
RITARDO MOVLW 254
MOVWF CONTBASSO
RITARDOBASSO DECFSZ CONTBASSO
GOTO RITARDOBASSO
GOTO RITARDOALTO0
RITARDOALTO0 DECFSZ CONTALTO
GOTO RITARDO
DECFSZ CONTALTO2
GOTO RISTCONT
RETURN

P.S.
Qualcuno mi potrebbe dare un semplice programmino per far lampeggiare un led, senza usare interruttori o periferiche di temporizzazione come i Timer interni..... solo un semplice stupido Lampeggio grazie, ed è vero che con una variabile di solo 8 bit si può ottenere un ritardo massimo di 2 millisecndi?


Scusate e Grazie
SoldatoSemplice non è collegato   Rispondi citando
Vecchio 17 novembre 05, 12:36   #2 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originally posted by SoldatoSemplice@17 novembre 2005, 10:48
L'ultimo (spero) cruccio rimastomi è: se io metto un quarzo da 4 Mhz quanto dura il tempo di esecuzione di una singola istruzione?

Secondo i miei calcoli...
Non per fare polemica, ma leggere le specifiche non farebbe male... e da lì scopriresti che ogni ciclo di istruzione impiega 4 cicli macchina e quindi a 4 Mhz ogni istruzione viene eseguita in 1 microsecondo (a parte i jump e le call da 2 cicli).

Per la routine di ritardo ti mando un paio di esempi più tardi, ma considera che fare i ritardi con loop di istruzioni non è un buon sistema e i timer interni sono fatti apposta per queste cose... ti consiglio quindi di partire con il piede giusto anche perchè così impari a fare cose che ti torneranno probabilmente utili anche più avanti.

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 17 novembre 05, 14:45   #3 (permalink)  Top
User
 
L'avatar di Claudio_F
 
Data registr.: 02-04-2005
Messaggi: 2.050
Citazione:
Originally posted by SoldatoSemplice@17 novembre 2005, 10:48
Avrei realizzato questa routine di ritardo secondo me funziona ma un parere di chi ne sa più di me è gradito: eccola...
[cut]
è vero che con una variabile di solo 8 bit si può ottenere un ritardo massimo di 2 millisecndi?
La routine funziona e cosi' come e' scritta se non ho sbagliato i conti dura 49,549307 secondi con clock di 4MHz. Il valore del registro W non viene mai alterato, quindi basta impostarlo la prima volta. Non capisco l'utilita' della riga " GOTO RITARDOALTO0".

Con un semplice decremento a 8 bit otteniamo 0,768mS:
Codice:
 CLRF CL
 DECFSZ CL,F
 GOTO $-1
Aggiungendo qualche ritardo intermedio allunghiamo un po', ma siamo sempre su quei valori, la seguente routine dura 1,792mS:
Codice:
CLRF CL
NOP
NOP
NOP
NOP
DECFSZ CL,F
GOTO $-5
Claudio_F non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
PIC16F84 & motore stepper 200 giri DDV1982 Circuiti Elettronici 13 19 giugno 08 19:54
AIUTO!!! AIUTO!!! AIUTO!!! INTERFERENZE PAUROSE!!!!!! alvaro Elimodellismo in Generale 10 04 ottobre 07 12:36
Schema per PIC16F84.... kriptor86 Circuiti Elettronici 5 11 marzo 04 19:13
Pic16F84 e seriale dexterman Circuiti Elettronici 6 01 febbraio 04 17:59
Regolatore PIC16F84 --- Motore ? flyer Circuiti Elettronici 3 22 dicembre 03 19:55



Tutti gli orari sono GMT +2. Adesso sono le 01:26.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002