X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=heater.git;a=blobdiff_plain;f=firmware%2Fmain.c;fp=firmware%2Fmain.c;h=30f904b5e463cd2c335557e9e17cb9b6867afac1;hp=0000000000000000000000000000000000000000;hb=2755b4c6000c4de64d83921bdb109077f4b38597;hpb=138fbcfab1abb032b8b532e845bfb92372a8d827 diff --git a/firmware/main.c b/firmware/main.c new file mode 100644 index 0000000..30f904b --- /dev/null +++ b/firmware/main.c @@ -0,0 +1,33 @@ +#include +#include +#include + +static uint16_t adcval EEMEM; + +int main() +{ + DDRB |= _BV(PB2) | _BV(PB4); + TCCR1 = _BV(CS10); // clk/1 = 1 MHz + // TCCR1 = _BV(CS11) | _BV(CS13); // clk/512 = 2 kHz + GTCCR = _BV(COM1B1) | _BV(PWM1B); + OCR1C = 255; + OCR1B = 9; + + ADCSRA = _BV(ADEN) | _BV(ADPS1) | _BV(ADPS0); // clk/8 = 125 kHz + ADMUX = _BV(REFS1) | _BV(MUX1) | _BV(MUX0); // 1.1V ref., PB3 single-ended + DIDR0 = _BV(ADC3D); + ADCSRA |= _BV(ADSC); + while (!(ADCSRA & _BV(ADIF))) + ; + ADCSRA |= _BV(ADSC); + while (!(ADCSRA & _BV(ADIF))) + ; + eeprom_write_word(&adcval, ADCW); + + while(1) { + PORTB |= _BV(PB2); + _delay_ms(500); + PORTB &= ~_BV(PB2); + _delay_ms(1000); + } +}