Files
-
blinds / hardware_design / pcb / blinds_v60.brd
-
blinds / hardware_design / pcb / blinds_v60.sch
-
braids / hardware_design / pcb / braids_v50.brd
-
braids / hardware_design / pcb / braids_v50.sch
-
branches / hardware_design / pcb / branches_v40.brd
-
branches / hardware_design / pcb / branches_v40.sch
-
clouds / hardware_design / pcb / clouds_v30.brd
-
clouds / hardware_design / pcb / clouds_v30.sch
-
ears / hardware_design / panel / ears_panel_v30.brd
-
ears / hardware_design / panel / ears_panel_v30.sch
-
ears / hardware_design / pcb / ears_v40.brd
-
ears / hardware_design / pcb / ears_v40.sch
-
edges / hardware_design / pcb / edges_expander_v01.brd
-
edges / hardware_design / pcb / edges_expander_v01.sch
-
edges / hardware_design / pcb / edges_v20.brd
-
edges / hardware_design / pcb / edges_v20.sch
-
elements / hardware_design / pcb / elements_v02.brd
-
elements / hardware_design / pcb / elements_v02.sch
-
frames / hardware_design / pcb / frames_v03.brd
-
frames / hardware_design / pcb / frames_v03.sch
-
grids / hardware_design / pcb / grids_v02.brd
-
grids / hardware_design / pcb / grids_v02.sch
-
kinks / hardware_design / pcb / kinks_v41.brd
-
kinks / hardware_design / pcb / kinks_v41.sch
-
links / hardware_design / pcb / links_v40.brd
-
links / hardware_design / pcb / links_v40.sch
-
marbles / hardware_design / pcb / marbles_v70.brd
-
marbles / hardware_design / pcb / marbles_v70.sch
-
peaks / hardware_design / pcb / peaks_v30.brd
-
peaks / hardware_design / pcb / peaks_v30.sch
-
plaits / hardware_design / pcb / plaits_v50.brd
-
plaits / hardware_design / pcb / plaits_v50.sch
-
rings / hardware_design / pcb / rings_v30.brd
-
rings / hardware_design / pcb / rings_v30.sch
-
ripples / hardware_design / pcb / ripples_v40.brd
-
ripples / hardware_design / pcb / ripples_v40.sch
-
shades / hardware_design / pcb / shades_v30.brd
-
shades / hardware_design / pcb / shades_v30.sch
-
shelves / hardware_design / pcb / shelves_expander_v10.brd
-
shelves / hardware_design / pcb / shelves_expander_v10.sch
-
shelves / hardware_design / pcb / shelves_v05.brd
-
shelves / hardware_design / pcb / shelves_v05.sch
-
stages / hardware_design / pcb / stages_v70.brd
-
stages / hardware_design / pcb / stages_v70.sch
-
streams / hardware_design / pcb / streams_v02_bargraph.brd
-
streams / hardware_design / pcb / streams_v02_bargraph.sch
-
streams / hardware_design / pcb / streams_v05.brd
-
streams / hardware_design / pcb / streams_v05.sch
-
tides / hardware_design / pcb / tides_v40.brd
-
tides / hardware_design / pcb / tides_v40.sch
-
veils / hardware_design / pcb / veils_v40.brd
-
veils / hardware_design / pcb / veils_v40.sch
-
volts / hardware_design / pcb / volts_v01.brd
-
volts / hardware_design / pcb / volts_v01.sch
-
warps / hardware_design / pcb / warps_v30.brd
-
warps / hardware_design / pcb / warps_v30.sch
-
yarns / hardware_design / pcb / yarns_v03.brd
-
yarns / hardware_design / pcb / yarns_v03.sch
Last update 6 years 4 months
by
Olivier Gillet
hardware_config.h// Copyright 2012 Olivier Gillet. // // Author: Olivier Gillet (olivier@mutable-instruments.net) // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. #ifndef EDGES_HARDWARE_CONFIG_H_ #define EDGES_HARDWARE_CONFIG_H_ #include "avrlibx/avrlibx.h" #include "avrlibx/devices/switch.h" #include "avrlibx/io/gpio.h" #include "avrlibx/io/parallel_io.h" #include "avrlibx/io/ring_buffer.h" #include "avrlibx/io/usart.h" #include "avrlibx/io/usart_spi.h" #include "avrlibx/system/timer.h" namespace edges { using avrlibx::DualTimer; using avrlibx::Gpio; using avrlibx::ParallelPort; using avrlibx::PortA; using avrlibx::PortB; using avrlibx::PortC; using avrlibx::PortD; using avrlibx::PortE; using avrlibx::PWM; using avrlibx::RingBuffer; using avrlibx::SPIMaster; using avrlibx::Timer; using avrlibx::UsartSPIMaster; // MIDI typedef avrlibx::Usart< PortC, 0, 31250, avrlibx::RX_POLLED, avrlibx::TX_DISABLED> MidiIO; struct MidiBufferSpecs { typedef uint8_t Value; enum { buffer_size = 128, data_size = 8, }; }; typedef RingBuffer<MidiBufferSpecs> MidiBuffer; // IO typedef ParallelPort<PortA, 0, 3> GateInputs; typedef ParallelPort<PortA, 4, 7> Leds; typedef ParallelPort<PortB, 0, 3> Switches; typedef Gpio<PortE, 0> SyncSwitch; // Audio DAC typedef Gpio<PortC, 6> DACSS; typedef UsartSPIMaster< PortC, 1, DACSS, avrlibx::MSB_FIRST, 2> AudioDACInterface; // ADC typedef Gpio<PortD, 3> ADCSS; typedef SPIMaster< PortD, ADCSS, avrlibx::MSB_FIRST, avrlibx::SPI_PRESCALER_CLK_16> ADCInterface; // Timers typedef Timer<PortC, 0> Channel3Timer; typedef Timer<PortC, 1> Channel2Timer; typedef Timer<PortD, 0> Channel1Timer; typedef Timer<PortD, 1> Channel0Timer; typedef PWM<PortC, 0> Channel3; typedef PWM<PortC, 4> Channel2; typedef PWM<PortD, 0> Channel1; typedef PWM<PortD, 4> Channel0; typedef Timer<PortE, 0> AudioRateTimer; const uint8_t kNumChannels = 4; #ifdef OCTAL_ADC const uint8_t kNumAdcChannels = 8; #else const uint8_t kNumAdcChannels = 4; #endif } // namespace edges #endif // EDGES_HARDWARE_CONFIG_H_