ADC Problema con 16F877A

A

Analyzer

Guest
Salve,
Sono nei guai con la funzione di ADC 16F877A.I am A0 porta utilizzando, A1, A5, E0, E1, E2.When misura della tensione tra i porti e GND sono di solito a 1 milivolt o 2 milivolts.But quando i log li funzione restituisce ADC 100-120 valori pari a 2.0V - 2.5V.When E2 provvedimento dà i 50 milivolt quando io non applicare tensione su di essa (quando i media idle)!Il mio dispositivo non funziona correttamente ora Please help!

Il mio codice è scritto con il compilatore C CCS v3.155

Il mio codice:

# include <16F877A.h>
# device adc = 8
# usano il ritardo (clock = 4000000)
# fusibili XT, NOWDT, NOPROTECT, calo di tensione, PUT, NOLVP
# use rs232 (baud = 9600, xmit = PIN_C6, AN = PIN_C7)void main () (

int v1, v2, v3, v4, v5, v6;
char ON;

setup_adc_ports (ALL_ANALOG);
setup_adc (ADC_CLOCK_INTERNAL);
setup_psp (PSP_DISABLED);
setup_spi (FALSE);
setup_counters (RTCC_INTERNAL, RTCC_DIV_2);
setup_timer_1 (T1_DISABLED);
setup_timer_2 (T2_DISABLED, 0,1);
setup_comparator (NC_NC_NC_NC);
setup_vref (FALSE);
set_tris_d (0x00);

ON = 1;
printf ( "3A75D5FA \ r \ n");

while (1)
(

delay_ms (500);

set_adc_channel (0); delay_us (100); v1 = read_adc (); delay_us (100);
set_adc_channel (1); delay_us (100); v2 = read_adc (); delay_us (100);
set_adc_channel (4); delay_us (100); v3 = read_adc (); delay_us (100);
set_adc_channel (5); delay_us (100); v4 = read_adc (); delay_us (100);
set_adc_channel (6); delay_us (100); v5 = read_adc (); delay_us (100);
set_adc_channel (7); delay_us (100); v6 = read_adc (); delay_us (100);

printf ( "Valore:% 2X /% 2X /% 2X /% 2X /% 2X /% 2X!", v1, v2, v3, v4, v5, v6);

if (ON == 1) (output_high (PIN_D2); ON = 0;) else (output_low (PIN_D2); ON = 1;)

v1 = 0; v2 = 0; v3 = 0; v4 = 0; V5 = 0; v6 = 0;
)

)Ho caricato lo schema, se si vuole guardare.

Analyzer.
Last edited by Analyzer il 04 Jun 2003 15:20, modificato 1 volta in totale

 
Avete guardare il Errata?

http://www.microchip.com/download/lit/suppdoc/errata/80133d.pdf
http://www.microchip.com/download/lit/suppdoc/errata/80128d.pdf

Ho avuto grandi problemi con 16F877a sopra 4MHz orologio e ritorno e scambiate a non Tipi.

Abbiamo voluto o risparmiare un po 'di denaro con il tipo A in quanto sono un po' meno ...

Soprattutto guardare la data di fabbricazione:
grandi problemi prima di 0.242!

miglior fortuna

 
Salve,
Grazie per la vostra reply.I sto usando nuovi MCU. Now.It Ho risolto il problema era un problema hardware.

Analyzer.

 

Welcome to EDABoard.com

Sponsor

Back
Top