uc: remapping of sensor inputs to meters
This commit is contained in:
parent
36ceaf4790
commit
8367d43828
|
@ -174,17 +174,8 @@ all: bin_files build sizeafter
|
||||||
build: elf hex eep
|
build: elf hex eep
|
||||||
|
|
||||||
bin_files: $(TARGET).c
|
bin_files: $(TARGET).c
|
||||||
# Here is the "preprocessing".
|
|
||||||
# It creates a .cpp file based with the same name as the .pde file.
|
|
||||||
# On top of the new .cpp file comes the WProgram.h header.
|
|
||||||
# At the end there is a generic main() function attached.
|
|
||||||
# Then the .cpp file will be compiled. Errors during compile will
|
|
||||||
# refer to this new, automatically generated, file.
|
|
||||||
# Not the original .pde file you actually edit...
|
|
||||||
test -d bin || mkdir bin
|
test -d bin || mkdir bin
|
||||||
#echo '#include "WProgram.h"' > bin/$(TARGET).cpp
|
|
||||||
cp $(TARGET).c bin/$(TARGET).c
|
cp $(TARGET).c bin/$(TARGET).c
|
||||||
#cat main.cxx >> bin/$(TARGET).cpp
|
|
||||||
|
|
||||||
elf: bin/$(TARGET).elf
|
elf: bin/$(TARGET).elf
|
||||||
hex: bin/$(TARGET).hex
|
hex: bin/$(TARGET).hex
|
||||||
|
|
29
uc/main.c
29
uc/main.c
|
@ -44,30 +44,18 @@ volatile struct sensor measurements[4];
|
||||||
|
|
||||||
// interrupt service routine for INT0
|
// interrupt service routine for INT0
|
||||||
ISR(INT0_vect) {
|
ISR(INT0_vect) {
|
||||||
measurements[0].value++;
|
|
||||||
aux[0].pulse = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// interrupt service routine for INT1
|
|
||||||
ISR(INT1_vect) {
|
|
||||||
measurements[1].value++;
|
measurements[1].value++;
|
||||||
aux[1].pulse = true;
|
aux[1].pulse = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// interrupt service routine for PCI2 (PCINT20 = pin4)
|
// interrupt service routine for INT1
|
||||||
ISR(PCINT2_vect) {
|
ISR(INT1_vect) {
|
||||||
if (aux[2].toggle == false) {
|
|
||||||
aux[2].toggle = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
measurements[2].value++;
|
measurements[2].value++;
|
||||||
aux[2].pulse = true;
|
aux[2].pulse = true;
|
||||||
aux[2].toggle = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// interrupt service routine for PCI0 (PCINT1 = pin9)
|
// interrupt service routine for PCI2 (PCINT20)
|
||||||
ISR(PCINT0_vect) {
|
ISR(PCINT2_vect) {
|
||||||
if (aux[3].toggle == false) {
|
if (aux[3].toggle == false) {
|
||||||
aux[3].toggle = true;
|
aux[3].toggle = true;
|
||||||
}
|
}
|
||||||
|
@ -78,6 +66,7 @@ ISR(PCINT0_vect) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// interrupt service routine for ADC
|
||||||
ISR(TIMER2_OVF_vect) {
|
ISR(TIMER2_OVF_vect) {
|
||||||
// read ADC result
|
// read ADC result
|
||||||
// add to nano(Wh) counter
|
// add to nano(Wh) counter
|
||||||
|
@ -188,14 +177,6 @@ void setup()
|
||||||
//pin change interrupt enable 2
|
//pin change interrupt enable 2
|
||||||
PCICR |= (1<<PCIE2);
|
PCICR |= (1<<PCIE2);
|
||||||
|
|
||||||
// PB1=PCINT1 configuration
|
|
||||||
// set as input pin with 20k pull-up enabled
|
|
||||||
PORTB |= (1<<PB1);
|
|
||||||
//enable pin change interrupt on PCINT1
|
|
||||||
PCMSK0 |= (1<<PCINT1);
|
|
||||||
//pin change interrupt enable 0
|
|
||||||
PCICR |= (1<<PCIE0);
|
|
||||||
|
|
||||||
// analog comparator setup for brown-out detection
|
// analog comparator setup for brown-out detection
|
||||||
// PD7=AIN1 configured by default as input to obtain high impedance
|
// PD7=AIN1 configured by default as input to obtain high impedance
|
||||||
|
|
||||||
|
|
15
uc/main.h
15
uc/main.h
|
@ -26,14 +26,21 @@
|
||||||
|
|
||||||
#define TYPE 2301
|
#define TYPE 2301
|
||||||
|
|
||||||
#if TYPE = 2301 // 230V - 1-phase @ 488.28Hz sampling rate
|
#if TYPE == 2301 // 230V - 1-phase @ 488.28Hz sampling rate
|
||||||
#define METERCONST 7091
|
#define METERCONST 7091
|
||||||
#elif TYPE = 2303 // 230V - 3-phase @ 488.28Hz sampling rate
|
#warning "230V - 1-phase selected. METERCONST set to 7091"
|
||||||
|
|
||||||
|
#elif TYPE == 2303 // 230V - 3-phase @ 488.28Hz sampling rate
|
||||||
#define METERCONST 7026
|
#define METERCONST 7026
|
||||||
#elif TYPE = 2401 // 240V - 1-phase @ 488.28Hz sampling rate
|
#warning "230V - 3-phase selected. METERCONST set to 7026"
|
||||||
|
|
||||||
|
#elif TYPE == 2401 // 240V - 1-phase @ 488.28Hz sampling rate
|
||||||
#define METERCONST 7399
|
#define METERCONST 7399
|
||||||
#elif TYPE = 2403 // 240V - 3-phase @ 488.28Hz sampling rate
|
#warning "240V - 1-phase selected. METERCONST set to 2401"
|
||||||
|
|
||||||
|
#elif TYPE == 2403 // 240V - 3-phase @ 488.28Hz sampling rate
|
||||||
#define METERCONST 7331
|
#define METERCONST 7331
|
||||||
|
#warning "240V - 3-phase selected. METERCONST set to 7331"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define START 0
|
#define START 0
|
||||||
|
|
Loading…
Reference in New Issue