Está en la página 1de 2

Para esta ocasion medimos el voltaje de dos potenciometros conectados al psoc para su funcionamiento se

aplico un programa con interrupciones de lectura de forma que lee un voltaje e imprime , posteriormente
interrumpe lectura y mide el otro voltaje , e intercala lecturas e impresiones en la pantalla LCD, sin embargo lo
hace tan rapido que al ojo humano le parece que es al mismo tiempo.

*/
#include <project.h>
#include <stdio.h>
#include "cyapicallbacks.h"
uint8 flag = 0;
char str[12];
float volts = 0;
uint32_t resultados[AMux_CHANNELS] = {0};
int main()
{
CyGlobalIntEnable;
LCD_Start();
AMux_Start();
AMux_Next();
ADC_Start();
ADC_IRQ_Enable();
ADC_StartConvert();

for(;;)
{
flag = 1;
if (flag == 1)
{
ADC_StopConvert();
resultados[AMux_GetChannel()] = ADC_GetResult32();
LCD_Position(0,5);
LCD_PrintNumber(0);
volts = (5.0000000/1048576)*resultados[0];
sprintf(str,"%.4fV ",volts);

LCD_PrintString(str);
LCD_Position(1,5);
LCD_PrintNumber(1);
volts = (5.0000000/1048576)*resultados[1];
sprintf(str,"%.4fV ",volts);
LCD_PrintString(str);
AMux_Next();
flag = 0;
ADC_StartConvert();
}
}
return 0;
}
void ADC_IRQ_Interrupt_InterruptCallback(void)
{
flag = 1;
}