Vai al contenuto
PLC Forum


Pausa Da 10 Secondi Con 16f628a In Asm - Come?


Mbacicc

Messaggi consigliati

Ciao a tutti, non riesco a capire come fare per eseguire 40 milioni di nop visto che le variabili che si possono creare sono da 8 bit e quindi massimo FFh (dovrei fare 156863 cicli annidati??? :D ). Vorrei risolvere questo problema senza circuiti esterni...

Praticamente questa pausa è la prima cosa che deve fare il pic... poi deve eseguire delle operazioni. Vi ringrazio per la collaborazione.

Link al commento
Condividi su altri siti


Semploce. Usi l'interrupt del timer1. Lo programmi, per esempio, a 20ms e poi conti 500 interrupts Al 500.o ricominci da capo :D

Link al commento
Condividi su altri siti

Grazie per la risposta tempestiva Livio, ma il problema è che non ho mai utilizzato l'interrupt del timer1...

Non è che potresti allegare un sorgente (anche con un tempo diverso)...

Grazie Mille

Link al commento
Condividi su altri siti

ifachsoftware

Puoi usare 2 strade

1) Usare il timer interno per generare la temporizzazione richiesta

2) Annidi vari loop

for i = 1 to 255

for a = 1 to 255

#asm

NOP

#endasm

next

next

Per mettere a punto i tempi puoi usare la simulazione dell'MPLAB con cui puoi mettere dei Break point e misurare i tempi che intercorrono dopo aver impostato la frequenza del quarzo con cui lavori.

Ciao :)

Modificato: da ifachsoftware
Link al commento
Condividi su altri siti

Grazie ifachsoftware, il problema è però:

il timer non l'ho mai usato, ma vorrei imparare ad usarlo...

mentre per quanto riguarda i cicli annidati, con variabili a 8 bit dovrei fare solo 156863 cicli annidati da 1 a 255 per avere un delay di 10 secondi con un clock a 4 Mhz... :D

Ciao

Link al commento
Condividi su altri siti

ifachsoftware
mentre per quanto riguarda i cicli annidati, con variabili a 8 bit dovrei fare solo 156863 cicli annidati da 1 a 255 per avere un delay di 10 secondi con un clock a 4 Mhz... 

Modificato: da ifachsoftware
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...