diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2020-03-28 20:30:24 +0100 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2020-03-28 20:30:24 +0100 |
| commit | 89be54a9feb65bfbad237b79969bf3446c90eebd (patch) | |
| tree | 39213238c9c6efcbda287efe4613129fe28571a4 | |
| parent | 456fe72cc5b026f9168af91767af6932f6e70866 (diff) | |
| download | PiCl-89be54a9feb65bfbad237b79969bf3446c90eebd.tar.gz PiCl-89be54a9feb65bfbad237b79969bf3446c90eebd.tar.bz2 PiCl-89be54a9feb65bfbad237b79969bf3446c90eebd.zip | |
Adds initial version of the Attiny24 firmware
| -rw-r--r-- | PiCl/PiCl-rescue.dcm | 3 | ||||
| -rw-r--r-- | PiCl/PiCl-rescue.lib | 428 | ||||
| -rw-r--r-- | PiCl/sym-lib-table | 1 | ||||
| -rw-r--r-- | picl-firmware/.vscode/c_cpp_properties.json | 15 | ||||
| -rw-r--r-- | picl-firmware/.vscode/tasks.json | 26 | ||||
| -rw-r--r-- | picl-firmware/fan_control.c | 86 | ||||
| -rw-r--r-- | picl-firmware/picl-firmware.code-workspace | 8 |
7 files changed, 567 insertions, 0 deletions
diff --git a/PiCl/PiCl-rescue.dcm b/PiCl/PiCl-rescue.dcm new file mode 100644 index 0000000..5f3ed79 --- /dev/null +++ b/PiCl/PiCl-rescue.dcm @@ -0,0 +1,3 @@ +EESchema-DOCLIB Version 2.0 +# +#End Doc Library diff --git a/PiCl/PiCl-rescue.lib b/PiCl/PiCl-rescue.lib new file mode 100644 index 0000000..08f29b6 --- /dev/null +++ b/PiCl/PiCl-rescue.lib @@ -0,0 +1,428 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# ATtiny24-20SSU-MCU_Microchip_ATtiny +# +DEF ATtiny24-20SSU-MCU_Microchip_ATtiny U 0 20 Y Y 1 F N +F0 "U" -500 850 50 H V L BNN +F1 "ATtiny24-20SSU-MCU_Microchip_ATtiny" 100 -850 50 H V L TNN +F2 "Package_SO:SOIC-14_3.9x8.7mm_P1.27mm" 0 0 50 H I C CIN +F3 "" 0 0 50 H I C CNN +$FPLIST + SOIC*3.9x8.7mm*P1.27mm* +$ENDFPLIST +DRAW +S -500 -800 500 800 0 1 10 f +X VCC 1 0 900 100 D 50 50 1 1 W +X PA3 10 600 300 100 L 50 50 1 1 B +X PA2 11 600 400 100 L 50 50 1 1 B +X PA1 12 600 500 100 L 50 50 1 1 B +X AREF/PA0 13 600 600 100 L 50 50 1 1 B +X GND 14 0 -900 100 U 50 50 1 1 W +X XTAL1/PB0 2 600 -300 100 L 50 50 1 1 B +X XTAL2/PB1 3 600 -400 100 L 50 50 1 1 B +X ~RESET~/PB3 4 600 -600 100 L 50 50 1 1 B +X PB2 5 600 -500 100 L 50 50 1 1 B +X PA7 6 600 -100 100 L 50 50 1 1 B +X PA6 7 600 0 100 L 50 50 1 1 B +X PA5 8 600 100 100 L 50 50 1 1 B +X PA4 9 600 200 100 L 50 50 1 1 B +ENDDRAW +ENDDEF +# +# AVR-ISP-6-Connector +# +DEF AVR-ISP-6-Connector J 0 40 Y Y 1 F N +F0 "J" -250 450 50 H V L CNN +F1 "AVR-ISP-6-Connector" 0 450 50 H V L CNN +F2 "" -250 50 50 V I C CNN +F3 "" -1275 -550 50 H I C CNN +$FPLIST + IDC?Header*2x03* + Pin?Header*2x03* +$ENDFPLIST +DRAW +S -105 -270 -95 -300 0 1 0 N +S -105 400 -95 370 0 1 0 N +S 300 -95 270 -105 0 1 0 N +S 300 5 270 -5 0 1 0 N +S 300 105 270 95 0 1 0 N +S 300 205 270 195 0 1 0 N +S 300 400 -300 -300 0 1 10 f +X MISO 1 400 200 100 L 50 50 1 1 P +X VCC 2 -100 500 100 D 50 50 1 1 P +X SCK 3 400 0 100 L 50 50 1 1 P +X MOSI 4 400 100 100 L 50 50 1 1 P +X ~RST 5 400 -100 100 L 50 50 1 1 P +X GND 6 -100 -400 100 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# C-Device +# +DEF C-Device C 0 10 N Y 1 F N +F0 "C" 25 100 50 H V L CNN +F1 "C-Device" 25 -100 50 H V L CNN +F2 "" 38 -150 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + C_* +$ENDFPLIST +DRAW +P 2 0 1 20 -80 -30 80 -30 N +P 2 0 1 20 -80 30 80 30 N +X ~ 1 0 150 110 D 50 50 1 1 P +X ~ 2 0 -150 110 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Conn_01x02_Male-Connector +# +DEF Conn_01x02_Male-Connector J 0 40 Y N 1 F N +F0 "J" 0 100 50 H V C CNN +F1 "Conn_01x02_Male-Connector" 0 -200 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Connector*:*_1x??_* +$ENDFPLIST +DRAW +S 34 -95 0 -105 1 1 6 F +S 34 5 0 -5 1 1 6 F +P 2 1 1 6 50 -100 34 -100 N +P 2 1 1 6 50 0 34 0 N +X Pin_1 1 200 0 150 L 50 50 1 1 P +X Pin_2 2 200 -100 150 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Conn_01x03_Male-Connector +# +DEF Conn_01x03_Male-Connector J 0 40 Y N 1 F N +F0 "J" 0 200 50 H V C CNN +F1 "Conn_01x03_Male-Connector" 0 -200 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Connector*:*_1x??_* +$ENDFPLIST +DRAW +S 34 -95 0 -105 1 1 6 F +S 34 5 0 -5 1 1 6 F +S 34 105 0 95 1 1 6 F +P 2 1 1 6 50 -100 34 -100 N +P 2 1 1 6 50 0 34 0 N +P 2 1 1 6 50 100 34 100 N +X Pin_1 1 200 100 150 L 50 50 1 1 P +X Pin_2 2 200 0 150 L 50 50 1 1 P +X Pin_3 3 200 -100 150 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Conn_01x04_Male-Connector +# +DEF Conn_01x04_Male-Connector J 0 40 Y N 1 F N +F0 "J" 0 200 50 H V C CNN +F1 "Conn_01x04_Male-Connector" 0 -300 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Connector*:*_1x??_* +$ENDFPLIST +DRAW +S 34 -195 0 -205 1 1 6 F +S 34 -95 0 -105 1 1 6 F +S 34 5 0 -5 1 1 6 F +S 34 105 0 95 1 1 6 F +P 2 1 1 6 50 -200 34 -200 N +P 2 1 1 6 50 -100 34 -100 N +P 2 1 1 6 50 0 34 0 N +P 2 1 1 6 50 100 34 100 N +X Pin_1 1 200 100 150 L 50 50 1 1 P +X Pin_2 2 200 0 150 L 50 50 1 1 P +X Pin_3 3 200 -100 150 L 50 50 1 1 P +X Pin_4 4 200 -200 150 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# D-Device +# +DEF D-Device D 0 40 N N 1 F N +F0 "D" 0 100 50 H V C CNN +F1 "D-Device" 0 -100 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + TO-???* + *_Diode_* + *SingleDiode* + D_* +$ENDFPLIST +DRAW +P 2 0 1 8 -50 50 -50 -50 N +P 2 0 1 0 50 0 -50 0 N +P 4 0 1 8 50 50 50 -50 -50 0 50 50 N +X K 1 -150 0 100 R 50 50 1 1 P +X A 2 150 0 100 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Fan_4pin-Motor +# +DEF Fan_4pin-Motor M 0 0 Y Y 1 F N +F0 "M" 100 200 50 H V L CNN +F1 "Fan_4pin-Motor" 100 -100 50 H V L TNN +F2 "" 0 10 50 H I C CNN +F3 "" 0 10 50 H I C CNN +$FPLIST + FanPinHeader*P2.54mm*Vertical* + PinHeader*P2.54mm*Vertical* + TerminalBlock* +$ENDFPLIST +DRAW +A -200 60 20 1800 900 0 0 0 N -220 60 -200 80 +A -200 60 20 -1799 -1 0 0 0 N -220 60 -180 60 +A -98 94 113 297 -910 0 1 0 N 0 150 -100 -20 +A 0 -70 112 1534 266 0 1 0 N -100 -20 100 -20 +A 103 95 115 -915 1519 0 1 0 N 100 -20 0 150 +C 0 40 128 0 1 10 N +P 2 0 0 0 -200 80 -210 85 N +P 2 0 0 0 -200 80 -205 70 N +P 3 0 0 0 -160 100 -160 40 -130 40 N +P 2 0 1 0 -160 100 -200 100 N +P 2 0 1 0 0 -200 0 -180 N +P 2 0 1 0 0 -88 0 -104 N +P 2 0 1 0 0 168 0 182 N +P 2 0 1 0 0 180 0 200 N +P 4 0 1 0 -100 -40 -160 -40 -160 -100 -200 -100 N +P 10 0 1 0 -210 -130 -200 -130 -200 -120 -190 -120 -190 -130 -170 -130 -170 -120 -160 -120 -160 -130 -140 -130 N +X - 1 0 -200 100 U 50 50 1 1 P +X + 2 0 300 100 D 50 50 1 1 P +X Tacho 3 -300 100 100 R 50 50 1 1 P +X PWM 4 -300 -100 100 R 50 50 1 1 I +ENDDRAW +ENDDEF +# +# Fuse-Device +# +DEF Fuse-Device F 0 0 N Y 1 F N +F0 "F" 80 0 50 V V C CNN +F1 "Fuse-Device" -75 0 50 V V C CNN +F2 "" -70 0 50 V I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + *Fuse* +$ENDFPLIST +DRAW +S -30 -100 30 100 0 1 10 N +P 2 0 1 0 0 100 0 -100 N +X ~ 1 0 150 50 D 50 50 1 1 P +X ~ 2 0 -150 50 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# G5Q-1A-Relay +# +DEF G5Q-1A-Relay K 0 20 Y Y 1 F N +F0 "K" 350 150 50 H V L CNN +F1 "G5Q-1A-Relay" 350 50 50 H V L CNN +F2 "Relay_THT:Relay_SPST_Omron-G5Q-1A" 350 -50 50 H I L CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Relay*SPST*Omron*G5Q* +$ENDFPLIST +DRAW +S -400 200 300 -200 0 1 10 f +S -325 75 -75 -75 0 1 10 N +P 4 0 0 0 200 200 200 100 175 125 200 150 N +P 2 0 1 10 -300 -75 -100 75 N +P 2 0 1 0 -200 -200 -200 -75 N +P 2 0 1 0 -200 200 -200 75 N +P 2 0 1 10 -75 0 -50 0 N +P 2 0 1 10 -25 0 0 0 N +P 2 0 1 10 25 0 50 0 N +P 2 0 1 10 75 0 100 0 N +P 2 0 1 10 125 0 150 0 N +P 2 0 1 20 200 -100 125 150 N +P 2 0 1 0 200 -100 200 -200 N +X ~ 1 -200 -300 100 U 50 50 1 1 P +X ~ 2 200 -300 100 U 50 50 1 1 P +X ~ 3 200 300 100 D 50 50 1 1 P +X ~ 5 -200 300 100 D 50 50 1 1 P +ENDDRAW +ENDDEF +# +# GND-power +# +DEF GND-power #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -250 50 H I C CNN +F1 "GND-power" 0 -150 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N +X GND 1 0 0 0 D 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# GNDPWR-power +# +DEF GNDPWR-power #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -200 50 H I C CNN +F1 "GNDPWR-power" 0 -130 50 H V C CNN +F2 "" 0 -50 50 H I C CNN +F3 "" 0 -50 50 H I C CNN +DRAW +P 2 0 1 0 0 -50 0 0 N +P 3 0 1 8 -40 -50 -50 -80 -50 -80 N +P 3 0 1 8 -20 -50 -30 -80 -30 -80 N +P 3 0 1 8 0 -50 -10 -80 -10 -80 N +P 3 0 1 8 20 -50 10 -80 10 -80 N +P 3 0 1 8 40 -50 -40 -50 -40 -50 N +P 4 0 1 8 40 -50 30 -80 30 -80 30 -80 N +X GNDPWR 1 0 0 0 D 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# LED-Device +# +DEF LED-Device D 0 40 N N 1 F N +F0 "D" 0 100 50 H V C CNN +F1 "LED-Device" 0 -100 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + LED* + LED_SMD:* + LED_THT:* +$ENDFPLIST +DRAW +P 2 0 1 8 -50 -50 -50 50 N +P 2 0 1 0 -50 0 50 0 N +P 4 0 1 8 50 -50 50 50 -50 0 50 -50 N +P 5 0 1 0 -120 -30 -180 -90 -150 -90 -180 -90 -180 -60 N +P 5 0 1 0 -70 -30 -130 -90 -100 -90 -130 -90 -130 -60 N +X K 1 -150 0 100 R 50 50 1 1 P +X A 2 150 0 100 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# PCF8574-Interface_Expansion +# +DEF PCF8574-Interface_Expansion U 0 40 Y Y 1 F N +F0 "U" -350 600 50 H V L CNN +F1 "PCF8574-Interface_Expansion" 100 600 50 H V L CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + DIP* + PDIP* + SO* + SOIC* +$ENDFPLIST +DRAW +S -350 -550 350 550 0 1 10 f +X A0 1 -500 100 150 R 50 50 1 1 I +X P5 10 500 -100 150 L 50 50 1 1 B +X P6 11 500 -200 150 L 50 50 1 1 B +X P7 12 500 -300 150 L 50 50 1 1 B +X ~INT~ 13 -500 -400 150 R 50 50 1 1 C V +X SCL 14 -500 400 150 R 50 50 1 1 I +X SDA 15 -500 300 150 R 50 50 1 1 B +X VDD 16 0 700 150 D 50 50 1 1 W +X A1 2 -500 0 150 R 50 50 1 1 I +X A2 3 -500 -100 150 R 50 50 1 1 I +X P0 4 500 400 150 L 50 50 1 1 B +X P1 5 500 300 150 L 50 50 1 1 B +X P2 6 500 200 150 L 50 50 1 1 B +X P3 7 500 100 150 L 50 50 1 1 B +X VSS 8 0 -700 150 U 50 50 1 1 W +X P4 9 500 0 150 L 50 50 1 1 B +ENDDRAW +ENDDEF +# +# PWR_FLAG-power +# +DEF PWR_FLAG-power #FLG 0 0 N N 1 F P +F0 "#FLG" 0 75 50 H I C CNN +F1 "PWR_FLAG-power" 0 150 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 6 0 1 0 0 0 0 50 -40 75 0 100 40 75 0 50 N +X pwr 1 0 0 0 U 50 50 0 0 w +ENDDRAW +ENDDEF +# +# Q_NPN_CBE-Device +# +DEF Q_NPN_CBE-Device Q 0 0 Y N 1 F N +F0 "Q" 200 50 50 H V L CNN +F1 "Q_NPN_CBE-Device" 200 -50 50 H V L CNN +F2 "" 200 100 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +C 50 0 111 0 1 10 N +P 2 0 1 0 25 25 100 100 N +P 3 0 1 0 25 -25 100 -100 100 -100 N +P 3 0 1 20 25 75 25 -75 25 -75 N +P 5 0 1 0 50 -70 70 -50 90 -90 50 -70 50 -70 F +X C 1 100 200 100 D 50 50 1 1 P +X B 2 -200 0 225 R 50 50 1 1 I +X E 3 100 -200 100 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# R-Device +# +DEF R-Device R 0 0 N Y 1 F N +F0 "R" 80 0 50 V V C CNN +F1 "R-Device" 0 0 50 V V C CNN +F2 "" -70 0 50 V I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + R_* +$ENDFPLIST +DRAW +S -40 -100 40 100 0 1 10 N +X ~ 1 0 150 50 D 50 50 1 1 P +X ~ 2 0 -150 50 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# SW_DIP_x04-Switch +# +DEF SW_DIP_x04-Switch SW 0 0 Y N 1 F N +F0 "SW" 0 350 50 H V C CNN +F1 "SW_DIP_x04-Switch" 0 -250 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + SW?DIP?x4* +$ENDFPLIST +DRAW +C -80 -100 20 0 0 0 N +C -80 0 20 0 0 0 N +C -80 100 20 0 0 0 N +C -80 200 20 0 0 0 N +C 80 -100 20 0 0 0 N +C 80 0 20 0 0 0 N +C 80 100 20 0 0 0 N +C 80 200 20 0 0 0 N +S -150 300 150 -200 0 1 10 f +P 2 0 0 0 -60 -94 93 -53 N +P 2 0 0 0 -60 5 93 46 N +P 2 0 0 0 -60 105 93 146 N +P 2 0 0 0 -60 205 93 246 N +X ~ 1 -300 200 200 R 50 50 1 1 P +X ~ 2 -300 100 200 R 50 50 1 1 P +X ~ 3 -300 0 200 R 50 50 1 1 P +X ~ 4 -300 -100 200 R 50 50 1 1 P +X ~ 5 300 -100 200 L 50 50 1 1 P +X ~ 6 300 0 200 L 50 50 1 1 P +X ~ 7 300 100 200 L 50 50 1 1 P +X ~ 8 300 200 200 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +#End Library diff --git a/PiCl/sym-lib-table b/PiCl/sym-lib-table index fa2ef0c..7d9df5f 100644 --- a/PiCl/sym-lib-table +++ b/PiCl/sym-lib-table @@ -6,4 +6,5 @@ (lib (name MIC5225)(type Legacy)(uri ${KIPRJMOD}/MIC5225/2020-03-17_16-24-30.lib)(options "")(descr "")) (lib (name NX3L4051PW,118)(type Legacy)(uri ${KIPRJMOD}/NX3L4051PW_118/NX3L4051PW_118.lib)(options "")(descr "")) (lib (name AD5222)(type Legacy)(uri ${KIPRJMOD}/AD5222/2020-03-21_09-14-09.lib)(options "")(descr "")) + (lib (name PiCl-rescue)(type Legacy)(uri ${KIPRJMOD}/PiCl-rescue.lib)(options "")(descr "")) ) diff --git a/picl-firmware/.vscode/c_cpp_properties.json b/picl-firmware/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..add3b91 --- /dev/null +++ b/picl-firmware/.vscode/c_cpp_properties.json @@ -0,0 +1,15 @@ +{ + "configurations": [ + { + "name": "AVR", + "includePath": [ + "${workspaceFolder}/**", + "/usr/avr/include/**" + ], + "defines": ["__AVR_ATtiny24__"], + "compilerPath": "/usr/bin/avr-gcc", + "intelliSenseMode": "clang-x64" + } + ], + "version": 4 +}
\ No newline at end of file diff --git a/picl-firmware/.vscode/tasks.json b/picl-firmware/.vscode/tasks.json new file mode 100644 index 0000000..069c853 --- /dev/null +++ b/picl-firmware/.vscode/tasks.json @@ -0,0 +1,26 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "type": "shell", + "label": "avr-gcc build active file", + "command": "/bin/avr-gcc", + "args": [ + "-mmcu=attiny24", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "/bin" + }, + "problemMatcher": [ + "$gcc" + ], + "group": "build" + } + ] +}
\ No newline at end of file diff --git a/picl-firmware/fan_control.c b/picl-firmware/fan_control.c new file mode 100644 index 0000000..9e87963 --- /dev/null +++ b/picl-firmware/fan_control.c @@ -0,0 +1,86 @@ +#include <avr/io.h> +#include <avr/interrupt.h> +#include <avr/sleep.h> + +void setup_adc() { + //enable interrupts + sei(); + // setup external reference voltage. + ADMUX &= ~(3UL << REFS0); + ADMUX |= (1UL << REFS0); + // set left adjusted ADC result so we can easily only use the upper 8 bits of the result + ADCSRB |= (1UL << ADLAR); + // enable ADC interrupt + ADCSRA |= (1UL << ADIE); +} + +void setup_timers() { + //use system clock for timers, no prescaler. + TCCR0B &= ~(7UL << CS00); + TCCR0B |= (1UL << CS00); + + //set mode 5 (PWM, phase correct, top defined by OCRA) + TCCR0A &= ~(3UL << WGM00); + TCCR0B &- ~(1UL << WGM02); + TCCR0A |= (1UL << WGM00); + TCCR0B |= (1UL << WGM02); +} + +void enable_ADC() { + PRR &= ~(1UL << PRADC); + ADCSRA |= (1UL << ADEN); +} + +void disable_ADC() { + ADCSRA &= ~(1UL << ADEN); + PRR |= (1UL << PRADC); +} + +void select_ADC_channel(int channel) { + ADMUX &= ~(7UL << MUX0); + ADMUX |= (channel << MUX0); +} + +uint8_t get_ADC_result() { + uint8_t result = ADCL; + //conversion would be blocked if we don't also read ADCH although we won't use the upper 2 bits. + uint8_t unblock = ADCH; + return result; +} + +void start_ADC() { + ADCSRA |= (1UL << ADSC); +} + +volatile uint8_t fan1; +volatile uint8_t fan2; + +void start_polling_fans() { + PRR &= ~(1UL << PRADC); + enable_ADC(); + select_ADC_channel(ADC1D); + start_ADC(); +} + +ISR(ADC_vect) { + if(ADMUX & (7UL << MUX0) == ADC1D) { + fan1 = get_ADC_result(); + select_ADC_channel(ADC2D); + start_ADC(); + return; + } + + if(ADMUX & (7UL << MUX0) == ADC2D) { + fan2 = get_ADC_result(); + disable_ADC(); + return; + } +} + +int main() { + set_sleep_mode(0); + setup_adc(); + setup_timers(); + + while(1); +} diff --git a/picl-firmware/picl-firmware.code-workspace b/picl-firmware/picl-firmware.code-workspace new file mode 100644 index 0000000..876a149 --- /dev/null +++ b/picl-firmware/picl-firmware.code-workspace @@ -0,0 +1,8 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": {} +}
\ No newline at end of file |
