#include #include #include #include #include "buffer.h" #include "pid.h" #include "adc.h" #include "i2cmaster.h" void modbusGet(void); volatile float output; volatile struct pid controller; volatile float setpoint_1 = 130; volatile float setpoint_2 = 150; volatile float setpoint_3 = 150; int main(){ DDRD |= (1 << 4); // LED DDRD |= (1 << 3); // FU PWM DDRD |= (1 << 2); // 485 DE PORTD |= 1 << 4; DDRB |= 0x0F; // out channels PORTD|=(1<<0); // RX // FU PWM on PD3 TCCR2A |= (1 << COM2B1) | (1 << COM2B0); TCCR2A |= (1 << WGM21) | (1 << WGM20); TCCR2B |= (1 << CS21); modbusSetAddress(1); modbusInit(); // Modbus Tick Timer TCCR0B|=(1< 128) output = 128; if(output >= 1){ uint32_t tmp = output * 512; if(tmp >= 0x10000) tmp = 0xFFFE; OCR1A = tmp; PORTB |= 0x0E; } else OCR1A = 1000; } ISR(TIMER1_COMPA_vect) { /* turn off outputs */ PORTB &= ~(0x0E); }