Olá Pessoal, este desafio tinha como proposto criar 5 níveis de temperatura para conversão em um display de 7 segmentos.
Programa:
#include <lpc21xx.h>
#include <stdio.h>
#define a (1<<16)
#define b (1<<17)
#define c (1<<18)
#define d (1<<19)
#define e (1<<20)
#define f (1<<21)
#define g (1<<22)
#define n1 IOSET1=b|c ; IOCLR1=a|d|e|f|g
#define n2 IOSET1=a|b|e|d|g ; IOCLR1=c|f
#define n3 IOSET1=a|b|c|d|g ; IOCLR1=e|f
#define n4 IOSET1=b|c|f|g ; IOCLR1=a|d|e
#define n5 IOSET1=a|c|d|f|g ; IOCLR1=b|e
unsigned int val;
unsigned char teste[];
int main(void)
{
IODIR1 = 0xffffffff;
PINSEL1 = 0x400000;
VPBDIV = 0x02;
ADCR = 0x00210601;
while(1)
{
atualiza:
ADCR |= 0x01000000;
while ((ADDR & 0x80000000) == 0);
val = ((ADDR >> 6) & 0x03FF);
if (val<204)
{
IOSET1=(n1);
goto atualiza;
}
else if (val>204 & val<408)
{
IOSET1=(n2);
goto atualiza;
}
else if (val>408 & val<612)
{
IOSET1=(n3);
goto atualiza;
}
else if (val>612 & val<816)
{
IOSET1=(n4);
goto atualiza;
}
else if (val>816 & val<1023)
{
IOSET1=(n5);
goto atualiza;
}
}
}
Nenhum comentário:
Postar um comentário