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
[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]