Tambem entendo muito pouco do PSoC!
Não sei como criar uma interrupçao a cada 125us, nem programar o PWM para uma frequencia de 80khz.
Criei essa rotina!
Ela mostra o valor do dado convertido no Lcd e modifica a largura do pulso do pwm para esse valor!
Teoricamente é isso que ela faz! rs
cpp code
void main()
{
LCD_Start();
ADCINC_Start(ADCINC_HIGHPOWER);
ADCINC_GetSamples(0);
M8C_EnableGInt;
for( ;; )
{
while(ADCINC_fIsDataAvailable() == 0);
LCD_Position(0,1);
LCD_PrHexInt(ADCINC_iGetData());
ADCINC_WritePulseWidth(ADCINC_bGetData());
}
}
Ainda sim nao funcionou! Testei apenas com uma tensao continua 5V, porque nao tive acesso a um laboratorio.
O dado enviado para o LCD é coerente, quando se coloca 5V e 0V,mostrando os respectivos valores convertidos!
O pino pra onde foi roteada a saida PWM, eu liguei em um LED, para testar seu duty cicle! Mais o brilho do LED nao varia, independente da tensão de entrada do conversor!
Se alguem puder me ajudar com a interrupçao, e com as outras configuraçoes! Tem muitas coisas que eu ainda nao consigo fazer direito!
VLW