/Designs/Measuring_instruments/GM_counter/SW/HV_source/main.c/main.c
32,8 → 32,12
#define DIVISOR 99 // 20 kHz
//#define DIVISOR 39 // 50 kHz
 
#define MAX_OUTPUT 1000
#define MAX_OUTPUT 530
#define raw_step 50
#define fine_step 5
 
 
 
/// Linear interpolation parameters
//
 
86,6 → 90,7
{
unsigned int1 button_press; // semafor pro cteni tlacitek
float output_voltage;
float voltage_setpoint = 300;
 
setup_adc_ports(sAN0|VSS_VREF);
setup_adc(ADC_CLOCK_DIV_32);
135,11 → 140,14
printf(lcd_putc,"%3.0f",output_voltage);
lcd_gotoxy(1,2);
 
if(input(OUTPUT_ENABLE))printf(lcd_putc,"Set:%lu "setpoint);
voltage_setpoint = setpoint * k + q;
 
if(input(OUTPUT_ENABLE))printf(lcd_putc,"Set:%3.0f ", voltage_setpoint);
else printf(lcd_putc,"DISABLED");
 
if(button_press==false ) // tlacitka se ctou znovu pouze pokud v redchozim cyklu nebyla zmacknuta.
{
 
if(!input(S1))
{
delay_ms(20);
147,7 → 155,7
{
button_press=true;
sound_beep(100,700);
if(setpoint < (MAX_OUTPUT-5) )setpoint+=5;
if(voltage_setpoint < (MAX_OUTPUT - raw_step) ) voltage_setpoint += raw_step;
}
}
 
158,7 → 166,7
{
button_press=true;
sound_beep(100,600);
if(setpoint > 0x05 ) setpoint-=5;
if(voltage_setpoint > raw_step ) voltage_setpoint -= raw_step;
}
}
 
169,7 → 177,7
{
button_press=true;
sound_beep(100,500);
if(setpoint < MAX_OUTPUT )setpoint++;
if(voltage_setpoint < MAX_OUTPUT - fine_step )voltage_setpoint += fine_step ;
}
}
 
180,9 → 188,11
{
button_press=true;
sound_beep(100,400);
if(setpoint > 0x00 ) setpoint--;
if(voltage_setpoint > 0 ) voltage_setpoint -= fine_step;
}
}
 
setpoint =(int) ((voltage_setpoint - q) / k);
}
if ( input(S1) && input(S2) && input(S3) && input(S4) ) button_press=false;