#define GLCD_CS1 PIN_B0
#define GLCD_CS2 PIN_B1
#define GLCD_DI PIN_B2
#define GLCD_RW PIN_B3
#define GLCD_E PIN_B4
#define GLCD_RST PIN_B5
#include <HDM64GS12.c>
#include <graphics.c>
float adc1;
float aku_gerilimi;
unsigned char gerilim_aku[20];
void aku_voltaji_okuma(void)
{
set_adc_channel(0);
delay_us(20);
adc1=read_adc();
aku_gerilimi=(adc1*4.013*(5.0/1023.0)); // 4.013 değeri 10/2.49 dan gelmekte
sprintf(gerilim_aku, "Uaku= %f V",aku_gerilimi);
glcd_text57(1,1,gerilim_aku,1,ON);
delay_ms(100);
}
void role_kontrolu(void)
{
if(aku_gerilimi>2.4 && aku_gerilimi<10.8)
{
output_high(pin_A2);
}
else output_low(pin_A2); // aküyü %20-90 arasında şarj ediyorum.
}
void main()
{
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0_AN1_AN3);
glcd_init(ON);
set_tris_a(0x0B);
set_tris_d(0x00);
while(TRUE)
{
aku_voltaji_okuma();
role_kontrolu();