Z
zanor
Guest
Hola!
Estoy usando el ADC 16f819 poco y golpeando el resultado a mi PC.Sin embargo, el ADC resultado es tan inestable, sigue saltando de arriba a abajo (por ejemplo, 950 saltos entre 947 y 953).
He conectado un 1k olla a los insumos.
aquí está mi mikroC código:
Código:
sin firmar a corto datos = 0, ro = 1;
* er corto sin firmar;vacío Comm_WriteConst (const unsigned char * s)
(
while (* s)
(
Soft_Uart_Write (* s);
s ;
)
)vacío SENDB (char SendMe) (
Soft_UART_Write (SendMe);
)vacío WAITB () (
while (* er) (
de datos = Soft_UART_Read (ER);
)
ro = 1;
)void main () (
er = &ro;OSCCON = 0xFF;
TRISA = 0xFF;
TRISB = 0b00000010;
PORTA = 0b00000000;
PORTB = 0b00000000;ADCON0 = 0b01000001; / / Max 20MHz, el canal 0, ADC SOBRE
ADCON1 = 0b01000000; / / 4 canales analógicos y
/ / Justificado a la izquierda (ADRESH = 8bit resultado)Soft_UART_Init (PORTB, 1, 0, 9600, 0);
Delay_ms (10);while (1) (WAITB ();if (datos == 'a')
(
SENDB ( 'a');ADCON0 = 0b01000001;
Delay_ms (1);
ADCON0 = 0b01000101;
while (ADCON0 y 0x4);
SENDB (ADRESH);
SENDB (ADRESL);ADCON0 = 0b01001001;
Delay_ms (1);
ADCON0 = 0b01001101;
while (ADCON0 y 0x4);
SENDB (ADRESH);
)))
Estoy usando el ADC 16f819 poco y golpeando el resultado a mi PC.Sin embargo, el ADC resultado es tan inestable, sigue saltando de arriba a abajo (por ejemplo, 950 saltos entre 947 y 953).
He conectado un 1k olla a los insumos.
aquí está mi mikroC código:
Código:
sin firmar a corto datos = 0, ro = 1;
* er corto sin firmar;vacío Comm_WriteConst (const unsigned char * s)
(
while (* s)
(
Soft_Uart_Write (* s);
s ;
)
)vacío SENDB (char SendMe) (
Soft_UART_Write (SendMe);
)vacío WAITB () (
while (* er) (
de datos = Soft_UART_Read (ER);
)
ro = 1;
)void main () (
er = &ro;OSCCON = 0xFF;
TRISA = 0xFF;
TRISB = 0b00000010;
PORTA = 0b00000000;
PORTB = 0b00000000;ADCON0 = 0b01000001; / / Max 20MHz, el canal 0, ADC SOBRE
ADCON1 = 0b01000000; / / 4 canales analógicos y
/ / Justificado a la izquierda (ADRESH = 8bit resultado)Soft_UART_Init (PORTB, 1, 0, 9600, 0);
Delay_ms (10);while (1) (WAITB ();if (datos == 'a')
(
SENDB ( 'a');ADCON0 = 0b01000001;
Delay_ms (1);
ADCON0 = 0b01000101;
while (ADCON0 y 0x4);
SENDB (ADRESH);
SENDB (ADRESL);ADCON0 = 0b01001001;
Delay_ms (1);
ADCON0 = 0b01001101;
while (ADCON0 y 0x4);
SENDB (ADRESH);
)))