MIKROC :Conversione AD non ottimale
Moderatore:
Paolino
18 messaggi
• Pagina 2 di 2 • 1, 2
0
voti
Certo
3 potenziometri collegato in RA0,RA1,RA3; Altri PIN porta A sono input digitali
3 potenziometri collegato in RA0,RA1,RA3; Altri PIN porta A sono input digitali
- Codice: Seleziona tutto
// Lcd module connections
sbit LCD_RS at PORTB.B2;
sbit LCD_EN at PORTB.B3;
sbit LCD_D4 at PORTB.B4;
sbit LCD_D5 at PORTB.B5;
sbit LCD_D6 at PORTB.B6;
sbit LCD_D7 at PORTB.B7;
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End Lcd module connections
unsigned long potSX;
unsigned long potDX;
unsigned long potCN;
unsigned long conta;
char testo1[7];
char testo2[7];
char testo3[7];
void main() {
CCP1CON = 0b00000000;
CCP2CON = 0b00000000;
//ADCON1=0b10000100;
ADCON1=132;
TRISA = 255;
ADC_Init();
delay_ms(500);
while (1) {
potSX = ADC_Read(0); // get ADC value from 0 channel
// potSX = ADC_Get_Sample(0); // get ADC value from 0 channel
delay_ms(10);
potCN = ADC_Read(1); // get ADC value from 0 channel
// potCN = ADC_Get_Sample(1); // get ADC value from 1 channel
delay_ms(10);
potDX = ADC_Read(3); // get ADC value from 0 channel
// potDX = ADC_Get_Sample(3); // get ADC value from 2 channel
delay_ms(10);
IntToStr(potSX ,testo1);
IntToStr(potCN ,testo2);
IntToStr(potDX ,testo3);
conta=conta+1;
if (conta>=50)
{
Lcd_Init(); // Initialize Lcd
Lcd_Cmd(_LCD_CLEAR); // Clear display 7
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,1,"X");
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;
}
}
}
Ultima modifica di
WALTERmwp il 10 nov 2014, 22:23, modificato 1 volta in totale.
Motivazione: Aggiunto i delimitatori per dare leggibilità al Post
Motivazione: Aggiunto i delimitatori per dare leggibilità al Post
0
voti
kf00115 ha scritto: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.
Ciao, anche io avevo iniziato un progetto con il MikroC, ma proprio come ha detto
Le librerie del MikroC sono blindate, inaccessibili, e presto di capiterà di dover implementare delle cose non previste dalle librerie, e l'unica soluzione sarà quella di scriverne delle tue.
il MikroC (per me) si è proprio arenato a questo punto, con 3/4 del codice del progetto ultimato, ho migrato tutto in MPLAB con il compilatore della Hi-Tech C, ed ho fatto tutto.
Ti consiglierei di provare il tuo circuito con un SW che sai che sicuramente funziona, così da escludere qualsiasi baco HW, magari anche poche routines. Vedrai che poi comicnierai ad aggiungerci tutto il resto!
Ciao!
0
voti
Ho fatto alcune prove con la mia scheda EasyPIC5 e con un 16F874A.
Ho dovuto solo rimappare i pin del display e tutto ha funzionato al primo colpo.
Ho solo due trimmer (collegati a RA0 ed RA1), mentre RA3 l'ho collegato ad un pulsante (quindi leggeva "0" oppure 1023).
Per me funziona tutto.
Ho dovuto solo rimappare i pin del display e tutto ha funzionato al primo colpo.
Ho solo due trimmer (collegati a RA0 ed RA1), mentre RA3 l'ho collegato ad un pulsante (quindi leggeva "0" oppure 1023).
Per me funziona tutto.
-

ivanpascolo
20 3 - New entry

- Messaggi: 71
- Iscritto il: 29 set 2014, 20:44
0
voti
Ho provato anche con i trimmer su RA1 ed RA3, mentre ho collegato un pulsante su RA0.
Funziona tutto
Funziona tutto
-

ivanpascolo
20 3 - New entry

- Messaggi: 71
- Iscritto il: 29 set 2014, 20:44
0
voti
... prego, figurati; però ti suggerisco ancora di dare una lettura al documento che ti ho prima indicato.kf00115 ha scritto:Grazie delle informazioni , ora mi aggiorno
Ti ho riordinato il Post [12], niente di che ma lo puoi fare anche tu.
Un altro suggerimento: quando devi inserire un nuovo Post utilizza il "tasto" "Rispondi", e non il "tasto" "Cita" presente all'interno degli altri Post(s).
Se poi vuoi riportare nel tuo nuovo Post una parte di quanto scritto in un altro, puoi semplicemente selezionare (evidenziandolo) le parole di tuo interesse e, solo dopo, selezionare "tasto" "Cita".
E' tutto mirato ad ottimizzare un minimo i contenuti e rendere più leggibili i contributi.
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8986
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
0
voti
Purtroppo il problema permane. Ho anche provato a montare su bread board un circuito al volo senza usare la scheda del camino. Ricordo che la scheda camino è stata sviluppata circa 7 anni fa e ancora sono funzionanti in diverse installazioni (camino mio compreso) E li leggo tre analogiche che risultano perfettamente indipendenti.
Durante le mie prove attuali un potenziometro lo vario a 0 a fondo scala, l'altro lo metto a un valore intermedio
------------------ Situazione 1 ----------------------------
RA0 al potA
RA1 al potB
Ra3 ad un filo che posso mettere a 0 o a 5V
PotA influenza potB e non viceversa
------------------ Situazione 2 ----------------------------
RA0 al potA
Ra1 ad un filo che posso mettere a 0 o a 5V
RA3 al potB
PotB influenza potAB e non viceversa
------------------ Situazione 3 ----------------------------
Ra0 ad un filo che posso mettere a 0 o a 5V
RA1 al potA
RA3 al potB
PotA influenza potB e non viceversa
Sulla scheda camino ho tre ingressi collegati tramite inseguitore di tensione (LM358) mentre sulla bread bord ho fatto un collegamento diretto potenziometro PIC
Lo strano comportamento si equivale
c'è sempre una spiegazione
Durante le mie prove attuali un potenziometro lo vario a 0 a fondo scala, l'altro lo metto a un valore intermedio
------------------ Situazione 1 ----------------------------
RA0 al potA
RA1 al potB
Ra3 ad un filo che posso mettere a 0 o a 5V
PotA influenza potB e non viceversa
------------------ Situazione 2 ----------------------------
RA0 al potA
Ra1 ad un filo che posso mettere a 0 o a 5V
RA3 al potB
PotB influenza potAB e non viceversa
------------------ Situazione 3 ----------------------------
Ra0 ad un filo che posso mettere a 0 o a 5V
RA1 al potA
RA3 al potB
PotA influenza potB e non viceversa
Sulla scheda camino ho tre ingressi collegati tramite inseguitore di tensione (LM358) mentre sulla bread bord ho fatto un collegamento diretto potenziometro PIC
Lo strano comportamento si equivale
c'è sempre una spiegazione
1
voti
funziona tutto e molto bene anche
Dove stava l'arcano mistero ?
La scheda camino che uso è il mio muletto dove taglio cucio saldo fili al volo per fare esperimenti. Almeno parto da un hardware testato, collaudato, che ha bordo led, pulsanti e un display LDC quindi metto meno variabili in gioco.
Però guardando bene, a forza di manipolare etc,, si è rotto fisicamente il piedino del condensatore in uscita al 7805 da 330 uF. E' bastato sistemarlo e il sistema funziona.
E la bread board? Ho messo al volo un condensatore da 100uF 63V (piccola capacità e elevata tensione ma avevo questo al volo) Ma la bread board ha due file di contatti verticali sul bordo esterno proprio per l'alimentazione Ma queste piste , in mezzo sono interrotte e vanno fatti due ponticelli. Forse perché puoi inserire diverse alimentazioni? Più di due. Non lo so. le altre che ho a disposizione non sono così.Da poco ne ho comprate un po nuove che presentato tutte questa particolarità Quindi stesso problema. la capacità da 100uF infilata in due buchi più in basso era scollegata da tutto, Faceva solo bella figura.
Possibile stessa tipologia di problemi ? Quando ci si mette il caso. Ringrazio comunque chi mi ha prestato attenzione dedicandomi del tempo. A ricambiare.
Dove stava l'arcano mistero ?
La scheda camino che uso è il mio muletto dove taglio cucio saldo fili al volo per fare esperimenti. Almeno parto da un hardware testato, collaudato, che ha bordo led, pulsanti e un display LDC quindi metto meno variabili in gioco.
Però guardando bene, a forza di manipolare etc,, si è rotto fisicamente il piedino del condensatore in uscita al 7805 da 330 uF. E' bastato sistemarlo e il sistema funziona.
E la bread board? Ho messo al volo un condensatore da 100uF 63V (piccola capacità e elevata tensione ma avevo questo al volo) Ma la bread board ha due file di contatti verticali sul bordo esterno proprio per l'alimentazione Ma queste piste , in mezzo sono interrotte e vanno fatti due ponticelli. Forse perché puoi inserire diverse alimentazioni? Più di due. Non lo so. le altre che ho a disposizione non sono così.Da poco ne ho comprate un po nuove che presentato tutte questa particolarità Quindi stesso problema. la capacità da 100uF infilata in due buchi più in basso era scollegata da tutto, Faceva solo bella figura.
Possibile stessa tipologia di problemi ? Quando ci si mette il caso. Ringrazio comunque chi mi ha prestato attenzione dedicandomi del tempo. A ricambiare.
18 messaggi
• Pagina 2 di 2 • 1, 2
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 10 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

