/Designs/Measuring_instruments/GM_counter/SW/HV_source/main.c
34,6 → 34,35
 
#define MAX_OUTPUT 1000
 
unsigned int16 setpoint=43;
unsigned int16 adc_value;
int1 output_permit=FALSE;
 
#INT_AD
void adc_handler() {
 
adc_value = read_adc();
if(output_permit == TRUE)
{
if (adc_value <= setpoint)
{
set_pwm2_duty((int16)255); // zapnuti menice
output_low(LED2);
}
else // vypnuti menice
{
set_pwm2_duty((int16)MAXDUTY);
output_high(LED2);
}
 
}
else
{
set_pwm2_duty((int16)MAXDUTY);
output_high(LED2);
}
}
 
void sound_beep( unsigned int lenght, int16 frequency)
{
unsigned int i;
46,9 → 75,7
}
 
void main()
{
unsigned int16 setpoint=43;
unsigned int16 napeti;
{
unsigned int1 button_press; // semafor pro cteni tlacitek
 
setup_adc_ports(sAN0|VSS_VREF);
64,7 → 91,8
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
setup_oscillator(OSC_8MHZ);
 
// enable_interrupts(GLOBAL);
enable_interrupts(INT_AD);
enable_interrupts(GLOBAL);
 
output_high(LED1);
output_high(LED2);
83,33 → 111,15
lcd_putc("\f");
 
//read_adc(ADC_START_ONLY);
read_adc(ADC_START_ONLY);
while(true)
{
napeti = read_adc();
if(input(OUTPUT_ENABLE))
{
if (napeti <= setpoint)
{
set_pwm2_duty((int16)255); // zapnuti menice
output_low(LED2);
}
else // vypnuti menice
{
set_pwm2_duty((int16)MAXDUTY);
output_high(LED2);
}
 
}
else
{
set_pwm2_duty((int16)MAXDUTY);
output_high(LED2);
}
if(input(OUTPUT_ENABLE)) output_permit=TRUE;
else output_permit=FALSE;
lcd_gotoxy(1,1);
printf(lcd_putc,"%4lu",napeti);
printf(lcd_putc,"%4lu",adc_value);
lcd_gotoxy(1,2);
 
if(input(OUTPUT_ENABLE))printf(lcd_putc,"Set:%lu "setpoint);