Buenas trades es algo muy sensillo lo que hace solamunte chequea el canal 0 del adc y me muestra el resultado en el lcd bueno eso deveria hacer y me maneja el pwm con relacion a la entrada el pwm si esta tomando valores pero el lcd solamunte escribe convercion adc simulado en proteus
gracias por su tiempo
#include <p18f452.h>
#include <adc.h>
#include <delays.h>
#include <stdlib.h>
#include <pwm.h>
#include <timers.h>
#include "mi_lcd.h"
#include "MIS PRAGMA.H"
/*************FUNCION INICIO LCD*************/
void inicio_lcd(void)
{
//INCIALIZACION DEL LCD
control_lcd(funtion_set_3);
control_lcd(Entry_2);
control_lcd(disp_control_0);
control_lcd(Home);
control_lcd(Clear);
}
/********************************************/
void Conf_ADC(void)
{
OpenADC(ADC_FOSC_RC & ADC_RIGHT_JUST & ADC_8ANA_0REF, ADC_INT_OFF);
SetChanADC(ADC_CH0);
}
/********************************************/
int LeeADC(void)
{
Delay10TCYx(2); // Delay for 50TCY
// Realizo la conversion del canal uno su valor
ConvertADC(); // empiezo conversion
while( BusyADC() ); // espero el resultado
return ReadADC(); //retorno el resultado
}
/*****************************************/
/*******************************************/
/* Configuracion de la PWM */
void Init_Pwm(int periodo)
{ // Configuracion de los pines
TRISCbits.TRISC2 = 0; //RC2 como salida => Enable PWM1
PORTCbits.RC2=0;
OpenTimer2(T2_POST_1_1); // Configuracion del timer2, para las PWM
OpenPWM1(0xFF);
SetDCPWM1(periodo); // Configuracion de inicio de los motores
}
/*****************FUNCION PRINCIPAL****************/
void main (void)
{
unsigned char mensaje4_h[]={" convercion adc "};
int result;
char cadena[7];
TRISC= 0x00;
TRISB= 0x00;
/***inicializo funciones***/
Conf_ADC();
inicio_lcd();
Init_Pwm(result);
LeeADC();
/****************************/
control_lcd(L13);
dato_lcd (mensaje4_h);
for(;

{
result=25; //LeeADC();
Init_Pwm(result);
Delay1KTCYx(50);
result=LeeADC();
itoa(result,cadena); // convierto la medida en un string
control_lcd(L26);
dato_lcd(cadena);
Delay1KTCYx(20);
}
}