Kledia Inserito: 30 settembre 2005 Segnala Share Inserito: 30 settembre 2005 Salve a tutti,è da un po di giorni che sto cercando di imparare a programmare i pic in assembler ma ho proprio difficoltà a capire e saper utilizzare i puntatori(ovvero l'indirizzamento indiretto)!Tra pochi giorni ho un esame all'univ e ci sarà sicuramente da scrivere un bel programma per il pic ed ho bisogno urgentemente di una mano.Sareste cosi gentili??'Accetto aiuti sotto qualunque forma(esempi,documenti,testi...spiegazioni)grazie e.....conto su di voi!!!! Link al commento Condividi su altri siti More sharing options...
dlgcom Inserita: 30 settembre 2005 Segnala Share Inserita: 30 settembre 2005 L'indirizzamento indiretto usa due registri che sono INDF e FSR.Si deve caricare in FRS l'indirizzo della locazione di memoria che vuoi leggere o scrivere.Poi si scrive in INDF il valore che vuoi passare nella locazione appena puntata in FSR.piccolo esempio per cancellare le pos di memoria da 20h a 2fh che trovi nel data sheet. MOVLW 0x20;carica l'indirizzo MOVWF FSR;della RAM NEXT CLRF INDF;cancella la posizione INCF FSR,F;incrementa il puntatore BTFSS FSR,4;e' ultima locazione? GOTO NEXT;no cancella prossima CONTINUE ;si continua Link al commento Condividi su altri siti More sharing options...
Kledia Inserita: 30 settembre 2005 Autore Segnala Share Inserita: 30 settembre 2005 grazie dlgcom ma questo lo avevo già trovato !Mi servirebbe una mano in più.Ho trovato(sempre in rete) degli esempi all'interno di alcuni programmi in assembler ma ho difficoltà a comprenderli completamente.............UFFI!Mi servirebbe un aiuto di un esperto/appassionato che sarebbe disposto ad aiutarmi a comprendere............so di chiedere troppo ma non riesco ad uscirne fuori e il tempo per il mio esame stringe! Link al commento Condividi su altri siti More sharing options...
dlgcom Inserita: 30 settembre 2005 Segnala Share Inserita: 30 settembre 2005 Mi servirebbe un aiuto di un esperto/appassionato che sarebbe disposto ad aiutarmi a comprendere Link al commento Condividi su altri siti More sharing options...
Kledia Inserita: 2 ottobre 2005 Autore Segnala Share Inserita: 2 ottobre 2005 Si il tempo stringe... ho ancora una settimana!In un compito si chiedeva di scrivere una routine in modo da fare comunicare due pic(una per il trasmettitore ed una per il ricevitore).Il problema era che uno acquiseva 4 tipi di segnali,l'altro li riceveva e (in un modo scelto da me) doveva visualizzare il risultato.L'unico suggerimento era di utilizzare i puntatori....!Il collega che mi spiegava alcune cose ha passato l'esame lo scorso appello ed ora per mia sfortuna sono rimasta a sbatterci la testa da sola.....ci fosse almeno un testo chiaro(semplice) da cui imparare!!!comunque scusa per lo sfogo....torno a studiare! Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 2 ottobre 2005 Segnala Share Inserita: 2 ottobre 2005 (modificato) Forse i tuoi problemi sono diversi dal semplice uso dei puntatori.Non dici niente su come vuoi fare comunicare i due dispositivi: in modo parallelo? in modo seriale? E se usi il modo seriale intendi servirti della modalità sincrona o asincrona?Così a sensazione io riterrei adatto l'uso di modalità seriale sincrona con il bus SPI, di cui i PIC sono dotati.Però potresti benissimo usare un metodo parallelo, se i due dispositivi sono vicini.Prova a descrivere meglio quello che intendi fare.Certo che se avessi incominciato a pensarci un poco per tempo............ Modificato: 2 ottobre 2005 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
dlgcom Inserita: 2 ottobre 2005 Segnala Share Inserita: 2 ottobre 2005 Come dice Livio , i puntatori sono l'ultimo tuo problema .Devi iniziare a dividere in blocchi il tuo progetto .potresti dividerlo cosi'blocco 1 : acquisizione dei 4 segnali- se sono analigici devi configurare gli ingressi AD, fare una scansione e memorizzarli in variabili pronte a essere spedite quando necessario.blocco 2 : trasmissione dati- creare routine di trasmissione tra i due PIC , la cosa piu' semplice e' usare rs232. con pic della serie 16f87x hai gia una UART interna che ti facilita molto le cose.blocco 3 : routine di visualizzazione - non dici se lo vuoi su display lcd o su pc o altro.Adesso io non so' quale e' il tuo livello di conoscenza dei pic.Dei tre blocchi quali sei in grado di fare?Non per scoraggiarti , ma un programmino cosi' se non hai niente di pronto non lo fai in una settimana. Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 3 ottobre 2005 Segnala Share Inserita: 3 ottobre 2005 Penso che il fatto di usare dei puntatori ti sia stato richiesto come logico modo per approcciare tale problema :Se devi trasferire dei dati da un pic all'altro (per esempio in seriale , ma la stessa logica vale anche in maniera parallela ...) ti conviene usare un buffer di x caratteri in cui inserisci i dati man mano che ti arrivano (e per far questo van bene i puntatori) , per immagazzinarli ad ogni interrupt dato dal pic al ricevimento di un carattere prendi il dato e lo metti nella locazione di memoria puntata dal tuo puntatore , che verra' incrementato di 1 per essere pronto per immagazzinare il successivo.Quando ti sono arrivati i 4 caratteri li vai a processare e resetti il puntatore a 0.Il fatto di immagazzinare i caratteri su interrupt e' fatto per non perdere informazioni , in quanto che il PIC ha un buffer di un solo carattere e se non lo salvi velocemente , rischi di perderlo ed ottenere l'errore di buffer overrun.Ciao Link al commento Condividi su altri siti More sharing options...
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