sábado, 15 de dezembro de 2012

Desafio 3.1 "Níveis de Temperatura"

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;
}
}
}


Isso é tudo Pessoal

Nenhum comentário:

Postar um comentário