PIC16F88-AD převodník-změna napětí způsobí přeblikávání LED

Tudle jsem to zkoušel v C je to pro 16f690, tak kdyby někdo potřeboval pro inspiraci. Budu rád, když se k tomu vyjádří i někdo zkušenější, funguje to, ale udělat se dá všechno lépe :slight_smile:

[code]
#define _XTAL_FREQ 4000000
#include <htc.h>

unsigned char aaa;

void init()
{
T2CON = 0b01001100; //nastavení časovače
TMR2IE=1;
PEIE=1;
GIE=1;
TMR2IF=0;
}

void ADint()
{
TRISC= 0b00000000;
TRISA= 0b00000100;
ANSEL= 0b00000100; // nastavení pinu RA2 jako analog (1)
ADCON0=0b00001000; // (0<<CHS0)|(1<<CHS1)|(0<<CHS2)|(0<<CHS3)|(1<<ADON);
ADCON1=0b00110000; //(1<<ADCS2)|(0<<ADCS1)|(1<<ADCS0);

}

unsigned char prevod()
{
unsigned char hodnota;
ADON=1; // zapnutí převodníku
GODONE=1; //zapnutí převodu

	while(GODONE);
	
	hodnota=ADRESH;
	
	return hodnota;	

}

void main (void)
{
ADint();

while(1)
{
aaa=prevod();
__delay_ms(10);

if(aaa <= 256 & aaa >= 224)
	   PORTC = 0b11111111;
if(aaa <= 223 & aaa >= 192)
	   PORTC = 0b01111111;
if(aaa <= 191 & aaa >= 160)
	   PORTC = 0b00111111;
if(aaa <=159 & aaa >= 128)
	   PORTC = 0b00011111;
if(aaa <= 127 & aaa >= 96)
	   PORTC = 0b00001111;
if(aaa <= 95 & aaa >= 64)
	   PORTC = 0b00000111;
if(aaa <= 63 & aaa >= 32)
	   PORTC = 0b00000011;
if(aaa <= 31 & aaa >= 6)
	   PORTC = 0b00000001;
if(aaa <= 5 & aaa >= 0)
	   PORTC = 0b00000000;

}
}[/code]