.: robotitaly.NET :. - la community italiana sulla robotica  

Vai indietro   .: robotitaly.NET :. - la community italiana sulla robotica > Microcontrollori > PIC & AVR

PIC & AVR Forum dedicato ai diffusissimi microcontrollori PICMicro e AVR

Rispondi
 
Strumenti della discussione Modalità di visualizzazione
  #1  
Vecchio 03-22-2010, 04:54 PM
giukio giukio non è collegato
Nuovo Roboter
 
Registrato dal: Feb 2009
Messaggi: 4
predefinito Comportamento anomalo software dsPic33f

Salve a tutti, sto sviluppando una scheda basata su un dsPic33FJ128GP804, programmo in C30, e mi sono imbattuto in alcuni strani problemi, ai quali non riesco a venirne a capo.

Premetto che ho già una piccola esperienza nella programmazione dei pic della serie 18F, però usavo il compilatore della CCS, conosco discretamente il c e non ho paura di smanettare con i registri del pic .

dopo questa piccola introduzione parto a spiegare quali strani problemi mi attanagliano, penso di aver qualcosa che mi sfugge infatti:
- non riesco a far eseguire il programma in modalità debug, sia usando l'ICD2 che il PICKIT3, quando entro in modalità debug, l'MPLAB non mi da alcun errore, vede il dispositivo, compila correttamente, programma, verifica, ma quando eseguo il codice(clicco sul tasto "play") il programma si arresta subito, sul poster noto che è necessario un oscillatore esterno, ne sono provvisto e ho configurato adeguatamente i configuration bits.

- il nodo più rilevante, è il comportamento strano del codice. quando inserisco una riga di codice contenente una lunga finzione matematica all'interno di una funzione, che non viene chiamata, il pic non parte, perlomeno non noto "segni di vita". comportamenti simili li ho riscontrati anche allinterno del classico while(1), sempre con funzioni matematiche, ma talvolta anche con l'istruzione fprintf.


come posso scremare il problema? qualcuno ha mai avuto comportamenti simili? ho fatto molte ricerche online ma non ho trovato nulla.

il mio progetto è su google code
UAV firmware

il codice sorgente lo visualizzate qui:link ai sorgenti

grazie in anticipo per la collaborazione o anche solo sostegno morale
Rispondi quotando
  #2  
Vecchio 03-23-2010, 07:04 AM
L'avatar di guiott
guiott guiott non è collegato
Roboter Graduato
 
Registrato dal: Jan 2008
residenza: Roma
Messaggi: 502
predefinito

Hai inserito tutti i traps come suggerito nei code examples? Spesso ci sono errori di memory address, stack overflow, math error, oscillator fail e altro che ti bloccano il programma e non danno alcun avviso. Cerca il file traps.c nel sito di Microchip. Includendo questo nel tuo programma se c'è un errore di questo tipo il program counter va a finire in una di queste routine e riesci a capire quale è l'errore. Oppure puoi modificare i vari traps per fargli eseguire qualche cosa che può essere utile per il debug.

Un altro problema tipico è l'utilizzo di ADC che devono essere simulate con gli appositi strumenti di SIM altrimenti il programma non va avanti durante la simulazione. Ma in questo caso ti da un errore nella finestra MPLAB SIM.

Un'altra cosa che bloccava durante la simulazione era lo switch dell'oscillatore all'avvio per far partire il PLL, bisognava inserire queste istruzioni:
#ifndef SIM //
while (OSCCONbits.COSC != 0b011); // Wait for Clock switch to occur

while(OSCCONbits.LOCK!=1) {}; // Wait for PLL to lock
#endif

ma questo problema è stato risolto ormai da parecchie versioni. Se hai le versioni aggiornate di MPLAB e C30 non dovresti più avere questo problema.
__________________
ciao
Guido
-------
www.guiott.com
Rispondi quotando
  #3  
Vecchio 03-23-2010, 09:09 AM
giukio giukio non è collegato
Nuovo Roboter
 
Registrato dal: Feb 2009
Messaggi: 4
predefinito

Quote:
Originariamente inviata da guiott Visualizza il messaggio
Un altro problema tipico è l'utilizzo di ADC che devono essere simulate con gli appositi strumenti di SIM altrimenti il programma non va avanti durante la simulazione. Ma in questo caso ti da un errore nella finestra MPLAB SIM.
grazie mille per la rapida risposta, forse mi sono spiegato male ma non stò simulando nulla, ho il circuito sotto gli occhi

proverò ad aggiungere gli interrupt per gli errori, magari è solamente una cavolata del genere! provo poi vi sò dire, ci risentiremo presto!


Giukio
Rispondi quotando
  #4  
Vecchio 03-23-2010, 09:41 AM
L'avatar di guiott
guiott guiott non è collegato
Roboter Graduato
 
Registrato dal: Jan 2008
residenza: Roma
Messaggi: 502
predefinito

Quote:
Originariamente inviata da giukio Visualizza il messaggio
grazie mille per la rapida risposta, forse mi sono spiegato male ma non stò simulando nulla, ho il circuito sotto gli occhi
Capito male io, togli gli ultimi due casi ma prendi in seria considerazione il traps.c quello fa riferimento al debug in condizioni reali. Ti assicuro che durante le prime fasi di sviluppo di errori simili ne escono parecchi.

facci sapere
__________________
ciao
Guido
-------
www.guiott.com
Rispondi quotando
  #5  
Vecchio 03-23-2010, 10:28 AM
L'avatar di astrobeed
astrobeed astrobeed non è collegato
Moderator
 
Registrato dal: Mar 2006
residenza: Roma
Messaggi: 2,133
Blog Entries: 1
predefinito

Quote:
Originariamente inviata da guiott Visualizza il messaggio
Ti assicuro che durante le prime fasi di sviluppo di errori simili ne escono parecchi.
Verissimo, se la tua scheda ha un led controllato dal dsPIC modifica i vari interrupt di traps.c per farlo lampeggiare, magari con sequenze diverse, così ti accorgi subito se c'è un errore di questo tipo.
Rispondi quotando
  #6  
Vecchio 03-23-2010, 12:59 PM
giukio giukio non è collegato
Nuovo Roboter
 
Registrato dal: Feb 2009
Messaggi: 4
predefinito

Quote:
Originariamente inviata da astrobeed Visualizza il messaggio
Verissimo, se la tua scheda ha un led controllato dal dsPIC modifica i vari interrupt di traps.c per farlo lampeggiare, magari con sequenze diverse, così ti accorgi subito se c'è un errore di questo tipo.
grazie mille, oggi purtroppo non ho tempo, domani provo e vi tengo aggiornati, il buon vecchio led non manca mai
Rispondi quotando
Rispondi

Segnalibri

Tag
c30, mplab, pic, problema

Strumenti della discussione
Modalità di visualizzazione

Regole d'invio
Non puoi inserire discussioni
Non puoi inserire repliche
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è attivo
Le smilie sono attive
Il codice IMG è attivo
il codice HTML è disattivato

Salto del forum


Tutti gli orari sono GMT. Attualmente sono le 07:52 PM.


Powered by vBulletin versione 3.8.7
Copyright ©: 2000 - 2018, Jelsoft Enterprises Ltd.