Pagina 1 di 2

MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 18:44
da kf00115
-1- Non so come si usano i TAG

2- Premetto che la mia esperienza si basa sull' assembler con tante routine sviluppate per diversi progetti funzionanti da anni e una breve esperienza con il PIC Basic Professional per poi cercare di passare al C. Volendo rimanere sui PIC 16F876 e PIC16F876A (ne ho circa una sessantina di pezzi rimasti da progetti del passato) sto sperimentando il MKROC in quanto il C18 vale per PIC 18F.

Mi servono 3 canali AD (dalla config di ADCCON1 imposto ADC RA,R1 e R3 e su display visualizzo i tre valori in punti digitali. Premetto che a lavorare in MIkroC mi sento ancora un cane in quanto sto annaspando da 5 o 6 giorni nel tempo libero.

Succede questo:
Se vario con potenziometro AN0 o AN1 tutto OK, Se vario AN3 varia anche AN0 e AN1
In assembler avevo risolto riportando i canali ADC al valore forzato 0 dopo una lettura
e comunque sincronizzavo con GONE e DONE

qui ho scritto questo

Codice: Seleziona tutto
void main() {

  ADCON1=0b00000100;
  TRISA0_bit= 1;
  TRISA1_bit= 1;
  TRISA3_bit= 1;

//GliI altri PIN porta A vorrei fossero degli OUTPUT
 
  while (1) {
    potSX = ADC_Read(0);      // canale AN0
    Delay_ms(10);
    potDX = ADC_Read(1);      //canale AN1
    Delay_ms(10);
    vbat  = ADC_Read(3);      // canale AN3
    Delay_ms(10);

//ho messo un ritardo sperando che migliorasse ma non mi sembra

    IntToStr(potSX ,testo1);
    IntToStr(potDX ,testo2);
    IntToStr(vbat  ,testo3);

/*ho convertito in stringa (idea copiata da internet)
per evitare sfarfallio lcd e evidente lentezza nella lettura, visualizzo ogni tanto*/

    conta=conta+1;

    if (conta>=500)
      {
        Lcd_Init();                                       
        Lcd_Cmd(_LCD_CLEAR);                   
        Lcd_Cmd(_LCD_CURSOR_OFF);         
        Lcd_Out(1,1,"P");
        Lcd_Out_Cp("=");
        Lcd_Out_Cp(rtrim(ltrim(testo1)));
        Lcd_Out_Cp("-");
        Lcd_Out_Cp(rtrim(ltrim(testo2)));
        Lcd_Out_Cp("-");
        Lcd_Out_Cp(rtrim(ltrim(testo3)));
        Delay_ms(200);
        conta=0;
      }

  }


E' come se prendesse il canale 3 come Vref per la conversione ma ADCON1 parla chiaro.
Tra l'altro non devo usare ADCON0 ? La selezione del canale la fa in automatico MIKROC ?
Grazie per l'attenzione

Re: MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 19:50
da kf00115
Non so se MikroC prepara l'ambiente ADC da solo o devo pensarcio io , nel dubbio
ho provato anche ad aggiungere per disabilitare i comparatori

CCP1CON = 0b00000000;
CCP2CON = 0b00000000;

ma stesso problema

poi ho visto su internet un esempio che a differenza degli altri usava anche

ADC_Init();

ho provato ma niente, problema rimane.

A proposito per quanto riguarda l'hardware sto usando una scheda da me sviluppata per un controllo di un termo camino a pellet (sonda T caldaia, sonda T boiler, sonda T esterna), quindi che gira in (non so quanti camini) dal 2007.

Il problema è solo software.

Re: MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 20:13
da ivanpascolo
Perché non esegui il programma passo-passo così vedi se il convertitore fa il suo dovere?

Re: MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 20:22
da kf00115
Passo passo? Ma non ho l'emulatore. Come suggerisci di farlo ?

Re: MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 20:28
da ivanpascolo
Come fai a progettare senza uno strumento utilissimo come l' ICD? Io senza uno strumento per il debug non inizierei nemmeno. PICKIT3, ad esempio, costa davvero poco e finalmente anche Microchip ha il suo compilatore C senza alcuna limitazione (mikroC è limitato).
MikroC è sicuramente attraente per le librerie che ha ma per chi non vulole spendere tanto...

Re: MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 20:48
da kf00115
Fino a 10 anni fa usavo il PicMaster (quella da diversi milioni di lire) per la serie C12 che era un vero emulatore. Ora non vale più niente Di ICD2 (la rotella) ne ho due solo che per i PIC che ho usato recentemente per delle luci LED RGB (piccolissime) il 12F1840 , l' ICD2 non si aggiorna. Allora due anni circa fa ho acquistato il PICKIT2 (Quello grigio). Ora c'e' il PcKit3 (rosso). Ma non sono emulatori ma debugger. Dovrei acquistare il REAL ICE che comunque è sempre un debugger anche se più raffinato.
Ora mi trovo a provare il MikroC e lo sto testando per capire se ci si può fare qualcosa di serio o se é un giochino.. Ma secondo me ha qualche problema come linguaggio quando vado a leggere più canali ADC. Cercavo se qualcuno ha avuto stessa esperienza. Di solito però per il F16 i più usano HI TECH.

Re: MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 21:04
da ivanpascolo
MikroC l'ho provato (ho acquistato anche l'icdprog), non è male ma non è un oggetto professionale.
Faccio un veloce ripasso e spero di poterti aiutare.

Re: MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 21:05
da WALTERmwp
Ciao Foto Utentekf00115, per quanto riguarda l'inserimento del codice in un Post, oppure uno schema elettrico/elettronico, devi fare prima ricorso ai tag(s) che ti si presentano sopra l'area di scrittura del Post stesso, come evidenziato di seguito:
rif_Code_fcd.JPG
Selezionando il tastino "Code" ti appaiono i relativi delimitatori così come per il tastino "fcd".
Ti suggerisco vivamente di leggerti, penso tu non l'abbia ancora fatto, l'ottimo articolo che puoi visualizzare tramite il menu a tendina: "Help -> Guida all'uso del Forum".
Poi, per verificare come si presenterebbe quello che hai scritto una volta pubblicato, prima di selezionare il tastino "Invia", seleziona il tastino "Anteprima"; se quello che visualizzi corrisponde alle tue aspettative allora esegui l'invio altrimenti ti riporti col cursore nell'area di scrittura del Post per apportare le tue correzioni o più semplicemente proseguire nella scrittura.

Saluti

Re: MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 21:14
da kf00115
Sono un ingegnere che svolge anche la professione di insegnante ormai da quasi 31 anni (purtroppo) e il prossimo Maggio ho 60 anni. Volevo mettere in piedi per le mie 4°A e 5°A un sistemino semplice per cui potessero usare il micro controllore ma in modo più agevole rispetto all' assembler (tra l'altro di un micro RISC ) ma volevo evitare Arduino che invece usiamo in 3°. Le mie prime esperienze con i micro le ho fatte nel 1990 con l' ST6 della SGS THOMPSON. Poi un lavoro per la gestione per il gatto delle nevi (con 196 HC della Intel su scheda emulatrice acquistata alla Kevin Shurtner ) e dopo tanti piccole cose con i PIC oltre a che ai vari Visual su PC software AWL x PLC Siemens. Ora mi sto arrotando con il MikroC. A scuola ho portato tre mie schede per la gestione dei camini e l'obiettivo é far fare agli alunni il software (un pezzetto alla volta). Almeno affrontano un problema reale.

Re: MIKROC :Conversione AD non ottimale

MessaggioInviato: 10 nov 2014, 21:15
da kf00115
WALTERmwp ha scritto:Ciao Foto Utentekf00115, per quanto riguarda l'inserimento del codice in un Post, ..


Grazie delle informazioni , ora mi aggiorno