DavidOne71 Inserito: 18 maggio 2013 Segnala Share Inserito: 18 maggio 2013 Ciao a tutti, vorrei passare a mplab X ma ci sono alcune cose che non funzionano e in particolare la funzione step over. In mplab 8.84 nessun problema e anche nelle versioni precedenti... MainLoop 34 call InitDelay 35 call DcR 36 call DcL 37 call PwrR ...... DcR 123 btfss SOFTON 124 return 125 movlw b'00000001' ; Seleziona il canale 0 (RA0), 126 movwf ADCON0 ; giustificato a sinistra, attiva il convertitore ADC 127 goto $+1 ; Ritardo di 5 us 128 goto $+1 ; per la carica ..... I numeri li ho messi solo per capire meglio, quando simulo e sono alla linea 35 premo step over che dovrebbe eseguire la routine DcR senza entrarci e fermarsi sulla linea successiva (36) invece salta alla linea 37. Come mai? nella 8.84 non accade... Spero che qualcuno mi possa aiutare Grazie Link al commento Condividi su altri siti More sharing options...
DavidOne71 Inserita: 25 maggio 2013 Autore Segnala Share Inserita: 25 maggio 2013 Immagino che nessuno sa niente di questa cosa Link al commento Condividi su altri siti More sharing options...
kappa47 Inserita: 29 maggio 2013 Segnala Share Inserita: 29 maggio 2013 Probabilmente e' un bug del simulatore/emulatore. Prova ad inserire una "nop" tra le due call (tra il punto 35 e 36). Non dici quale compilatore utilizzi. Prova a compilare con il minimo di ottimizzazione. Alla prossima... Link al commento Condividi su altri siti More sharing options...
DavidOne71 Inserita: 29 maggio 2013 Autore Segnala Share Inserita: 29 maggio 2013 Innanzi tutto grazie per la risposta non ci speravo più Prova ad inserire una "nop" tra le due call (tra il punto 35 e 36). In effetti funziona pero non mi sembra eccezionale Non dici quale compilatore utilizzi. MPASM v5.49 Prova a compilare con il minimo di ottimizzazione. Non vale per i compilatori ad alto livello? io scrivo in assembler Link al commento Condividi su altri siti More sharing options...
kappa47 Inserita: 30 maggio 2013 Segnala Share Inserita: 30 maggio 2013 Hai ragione, in assembler non ci sono livelli di ottimizzazione. Per curiosita', prova a fare questa modifica: DcR 123 btfss SOFTON 124 goto label 125 movlw b'00000001' ; Seleziona il canale 0 (RA0), 126 movwf ADCON0 ; giustificato a sinistra, attiva il convertitore ADC 127 goto $+1 ; Ritardo di 5 us 128 goto $+1 ; per la carica ..... 130 label return Togli la "nop" che hai inserito tra la riga 35 e 36. Puoi postare l'inizio della funzione "DcL" ? Link al commento Condividi su altri siti More sharing options...
DavidOne71 Inserita: 30 maggio 2013 Autore Segnala Share Inserita: 30 maggio 2013 (modificato) 130 label return Perdonami, ma non ho capito il "label", devo scriverla proprio cosi? Puoi postare l'inizio della funzione "DcL" ? Il codice che ho postato era solo un esempio, me lo fa su tutte le call che ho comunque questa è tutta la routine: DcL btfss SOFTON return movlw b'00000101' ; Seleziona il canale 1 (RA1), movwf ADCON0 ; giustificato a sinistra, attiva il convertitore ADC goto $+1 ; Ritardo di 5 us goto $+1 ; per la carica nop ; del condensatore bsf ADCON0,GO ; start conversion btfsc ADCON0,GO ; this bit will change to zero when the conversion is complete goto $-1 ifdef __DEBUG movlw 100 movwf ADRESH endif movfw ADRESH ; Salva il valore acquisito sublw 38 btfss _C goto $+2 goto DcLover movfw ADRESH ; Salva il valore acquisito sublw 141 btfss _C goto DcLover bcf DCL ; Imposta errore soglia DC non superata return DcLover bsf DCL ; Imposta errore soglia DC superata return Scusa per l'allineamento ma l'editor del forum mi toglie gli spazi Modificato: 30 maggio 2013 da DavidOne71 Link al commento Condividi su altri siti More sharing options...
kappa47 Inserita: 31 maggio 2013 Segnala Share Inserita: 31 maggio 2013 E' una etichetta per il "goto". Puoi usare un nome qualunque. Se il problema rimane, prova ad iniziare le tue funzioni con una "nop" e non con il test della variabile "SOFTON". Non ti preoccupare per l'allineamento. Link al commento Condividi su altri siti More sharing options...
DavidOne71 Inserita: 2 giugno 2013 Autore Segnala Share Inserita: 2 giugno 2013 Ok grazie 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