From 2ccb2b6da29e37fcd8f44e7857040862ae578db3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D0=B5=D0=B3=20=D0=91=D0=BE=D1=80=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Wed, 21 Aug 2024 10:44:56 +0200 Subject: [PATCH] update --- adc.h | 4 ++-- contr.c | 68 +++++++-------------------------------------------------- main.c | 7 +++++- relay.c | 17 +++++++++++---- relay.h | 3 +++ timer.h | 12 ---------- 6 files changed, 32 insertions(+), 79 deletions(-) diff --git a/adc.h b/adc.h index 6834a27..225034d 100644 --- a/adc.h +++ b/adc.h @@ -2,8 +2,8 @@ #define ADC_H_QWERTY #define ACD_CHANELL0 0x00 -#define ACD_CHANELL2 0x01 -#define ACD_CHANELL3 0x02 +#define ACD_CHANELL1 0x01 +#define ACD_CHANELL2 0x02 #define ACD_CHANELL3 0x03 #define ACD_CHANELL4 0x04 #define ACD_CHANELL5 0x05 diff --git a/contr.c b/contr.c index 3005c3c..078a3e6 100644 --- a/contr.c +++ b/contr.c @@ -11,13 +11,15 @@ #include #include +#include #include #include -#include #include #include #include #include +#include + #include @@ -87,12 +89,6 @@ void contr_init(void) { void contr_setup(void) { contr_read_band(); - - - - contr_key_init(); - adc_init(); - timer0_init(); } @@ -251,22 +247,10 @@ void contr_main(void) { } void contr_vcc_measure(void) { - REG_SETUP_BIT(ADMUX, MUX0); - REG_SETUP_BIT(ADMUX, MUX1); - REG_SETDOWN_BIT(ADMUX, MUX2); - REG_SETDOWN_BIT(ADMUX, MUX3); - - REG_SETUP_BIT(ADCSRA, ADSC); - while (ADCSRA & BIT(ADSC)); - uint16_t lval = (uint16_t)ADCL; - uint16_t hval = (uint16_t)ADCH; - hval = (hval << 8) & 0xFF00; - lval = lval & 0x00FF; - if (++contr.vcc_pos > VCC_SIZE) { contr.vcc_pos = 0; } - contr.vcc[contr.vcc_pos] = (hval | lval); + contr.vcc[contr.vcc_pos] = adc_read(ACD_CHANELL3); } #define CONTR_VCC_SCALE 2673.0F @@ -289,22 +273,10 @@ float contr_vcc_calc(void) { } void contr_fwd_measure(void) { - REG_SETUP_BIT(ADMUX, MUX0); - REG_SETDOWN_BIT(ADMUX, MUX1); - REG_SETDOWN_BIT(ADMUX, MUX2); - REG_SETDOWN_BIT(ADMUX, MUX3); - - REG_SETUP_BIT(ADCSRA, ADSC); - while (ADCSRA & BIT(ADSC)); - uint16_t lval = (uint16_t)ADCL; - uint16_t hval = (uint16_t)ADCH; - hval = (hval << 8) & 0xFF00; - lval = lval & 0x00FF; - if (++contr.fwd_pos > FWD_SIZE) { contr.fwd_pos = 0; } - contr.fwd[contr.fwd_pos] = (hval | lval); + contr.fwd[contr.fwd_pos] = adc_read(ACD_CHANELL1); } float contr_fwd_calc(void) { @@ -319,22 +291,10 @@ float contr_fwd_calc(void) { } void contr_rev_measure(void) { - REG_SETDOWN_BIT(ADMUX, MUX0); - REG_SETDOWN_BIT(ADMUX, MUX1); - REG_SETDOWN_BIT(ADMUX, MUX2); - REG_SETDOWN_BIT(ADMUX, MUX3); - - REG_SETUP_BIT(ADCSRA, ADSC); - while (ADCSRA & BIT(ADSC)); - uint16_t lval = (uint16_t)ADCL; - uint16_t hval = (uint16_t)ADCH; - hval = (hval << 8) & 0xFF00; - lval = lval & 0x00FF; - if (++contr.rev_pos > REV_SIZE) { contr.rev_pos = 0; } - contr.rev[contr.rev_pos] = (hval | lval); + contr.rev[contr.rev_pos] = adc_read(ACD_CHANELL0);; } float contr_rev_calc(void) { @@ -356,18 +316,6 @@ void contr_read_band(void) { eeprom_read_bytes(0x00, &contr.band, sizeof(contr.band)); } -void contr_key_init(void) { - /* D3 PD3: Set key input */ - REG_SETDOWN_BIT(DDRD, PD3); - REG_SETUP_BIT(PORTD, PD3); -} - -bool contr_key_is_pressed(void) { - if (REG_BIT_VALUE(PIND, PD3)) { - return true; - } - return false; -} #define CONTR_KEY_CNTINPRESS 100 #define CONTR_KEY_CNTRELEASE 100 @@ -377,7 +325,7 @@ bool contr_key_is_pressed(void) { void contr_key_handle(void) { if (!contr.key_was_pressed) { - if (contr_key_is_pressed()) { + if (button_is_pressed()) { contr.key_time_counter++; contr.key_time_untap++; } @@ -386,7 +334,7 @@ void contr_key_handle(void) { contr.key_was_pressed = true; } } else { - if (!contr_key_is_pressed()) { + if (!button_is_pressed()) { contr.key_time_counter++; } if (contr.key_time_counter > CONTR_KEY_CNTRELEASE) { diff --git a/main.c b/main.c index bc410a2..c9891b9 100644 --- a/main.c +++ b/main.c @@ -10,11 +10,12 @@ #include #include -#include #include #include +#include #include #include +#include #include @@ -24,6 +25,9 @@ int main(void) { uartio_init(); disp_init(); + adc_init(); + timer0_init(); + atten_init(); relaytx_init(); relay10m_init(); @@ -32,6 +36,7 @@ int main(void) { relay80m_init(); buzzer_init(); fan_init(); + button_init(); relaytx_off(); atten_off(); diff --git a/relay.c b/relay.c index 21037d9..da96d19 100644 --- a/relay.c +++ b/relay.c @@ -10,10 +10,19 @@ #include #include -//#include -//#include -//#include -//#include + +void button_init(void) { + /* D3 PD3: Set key input */ + REG_SETDOWN_BIT(DDRD, PD3); + REG_SETUP_BIT(PORTD, PD3); +} + +bool button_is_pressed(void) { + if (REG_BIT_VALUE(PIND, PD3)) { + return true; + } + return false; +} /* D4 PD4: Set input relay 5 output */ void relaytx_init(void) { diff --git a/relay.h b/relay.h index e5666e0..4e42c78 100644 --- a/relay.h +++ b/relay.h @@ -2,6 +2,9 @@ #ifndef CONTR_RELAY_H_QWERTY #define CONTR_RELAY_H_QWERTY +void button_init(void); +bool button_is_pressed(void); + void relaytx_init(void); void relaytx_on(void); void relaytx_off(void); diff --git a/timer.h b/timer.h index a75b9ec..7d2b179 100644 --- a/timer.h +++ b/timer.h @@ -1,18 +1,6 @@ #ifndef CONTR_INIT_H_QWERTY #define CONTR_INIT_H_QWERTY -#define ACD_CHANELL0 0x00 -#define ACD_CHANELL1 0x01 -#define ACD_CHANELL2 0x02 -#define ACD_CHANELL3 0x03 -#define ACD_CHANELL4 0x04 -#define ACD_CHANELL5 0x05 -#define ACD_CHANELL6 0x06 -#define ACD_CHANELL7 0x07 - -void adc_init(void); -uint16_t adc_read(uint8_t channel); - void timer0_init(void); #endif