Arquivo de exemplo: http://www.4shared.com/rar/VAKfy5lZ/adclpc2138.html?
Exemplo de Resposta: http://www.4shared.com/rar/gnjYDKFF/desafio31resposta.html?
Meu 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 num_1 IOSET1=b|c ; IOCLR1=a|d|e|f|g
#define num_2 IOSET1=a|b|e|d|g ; IOCLR1=c|f
#define num_3 IOSET1=a|b|c|d|g ; IOCLR1=e|f
#define num_4 IOSET1=b|c|f|g ; IOCLR1=a|d|e
#define num_5 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)
{
num_1;
goto atualiza;
}
else if (val>204 & val<408)
{
num_2;
goto atualiza;
}
else if (val>408 & val<612)
{
num_3;
goto atualiza;
}
else if (val>612 & val<816)
{
num_4;
goto atualiza;
}
else if (val>816 & val<1023)
{
num_5;
goto atualiza;
}
}
}
Circuito Proteus:

Nenhum comentário:
Postar um comentário