Vai al contenuto
PLC Forum


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


Messaggi consigliati

Inserito:

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.


Inserita:

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

Inserita:

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

ifachsoftware
Inserita: (modificato)

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
Inserita:

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

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

Grazie Livio, ci provo e ti faccio sapere...

ifachsoftware
Inserita: (modificato)
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

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...