c.l.s. Inserito: 7 settembre 2009 Segnala Inserito: 7 settembre 2009 buonasera a tutti voi del forum, sono alle prime armi e di istruzioni in asm sono propriomesso male.Ho scritto questo semplice progammino ma vorrei aumentare il tempo di pausa, portarlo a 10sec o 50 o addirittura 1min,o usato NOP ma se ne metto tanti mi da errore ! Chi mi puo aiutareeeeeeeeeeeeee!Però vorrei capire l'istruzione che si usa e perche . Inoltre dove trovo del materiale didattico che mi spiega proprio le basi e le varie istruzioni ? in rete ce tanto ma un po confuse!movwf OSCCALmovlw b'11111100'startbsf GPIO,1nopnopnopnopnopnopbsf GPIO,0nopnopnopnopnopnopbcf GPIO,0nopnopnopnopnopnopbcf GPIO,1nopnopnopnopnopnopgoto startend grazieeeeeeeeeeeeeeeeeeee
Livio Orsini Inserita: 8 settembre 2009 Segnala Inserita: 8 settembre 2009 Usare le NOP per creare un ritardo è un metodo barbaro. Il micro cicla senza far nulla. Comunque se proprio vuoi usare questo sitema scrivi una decina di NOP per creare un ritardo di qualche usec (dipende dal clock del micro), poi crei un loop che ripete n volte queste istruzioni, così moltiplichi il tuo ritardo.Il metodo più corretto è quello di programmare uno dei timer del micro. Al termine del conteggio il timer genera un interupt. Se, ad esempio, hai un quarzo da 8 MHz e carichi 45535 (65535 -45535=20000)nel timer, questi conterà 20000 clock da 0.5 msec e dopo 10 ms generà un interrupt. Contando questi interrupts potrai farti dei temporizzatori precisi senza impegnare le risorse di CPU.Sulla rete c'è tantissimo materiale sui PIC. Ti consiglio di cercare il sito di Sergio Tanzilli perchè ci trovi un ottimo tutorial sui PIC
c.l.s. Inserita: 8 settembre 2009 Autore Segnala Inserita: 8 settembre 2009 grazie Livio, mi insegni a farlo in un modo e nell'altro perpiacere!uso l'oscillatore interno a 4Mhzgrazie
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora