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; |
47,8 → 76,6 |
|
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); |
} |
if(input(OUTPUT_ENABLE)) output_permit=TRUE; |
else output_permit=FALSE; |
|
} |
else |
{ |
set_pwm2_duty((int16)MAXDUTY); |
output_high(LED2); |
} |
|
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); |