~toykeeper/flashlight-firmware/fsm

« back to all changes in this revision

Viewing changes to ToyKeeper/hwdef-noctigon-dm11-boost.h

  • Committer: Selene ToyKeeper
  • Date: 2023-07-23 00:08:12 UTC
  • mto: (483.1.175 anduril2)
  • mto: This revision was merged to the branch mainline in revision 491.
  • Revision ID: bzr@toykeeper.net-20230723000812-lae16ybrvfm1lvlf
converted noctigon-dm11-* builds to multi-channel
(but I could only test dm11-boost on actual hardware)
(also, it looks like dm11-sbt90 is almost identical to the base kr4 build,
 so I removed its hwdef)

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
// allow using aux LEDs as extra channel modes
45
45
#include "chan-rgbaux.h"
46
46
 
47
 
#define USE_CHANNEL_MODES
48
47
// channel modes:
49
48
// * 0. main LEDs
50
 
// * 1. aux red
51
 
// * 2. aux yellow
52
 
// * 3. aux green
53
 
// * 4. aux cyan
54
 
// * 5. aux blue
55
 
// * 6. aux purple
56
 
// * 7. aux white
57
 
#define NUM_CHANNEL_MODES  8
 
49
// * 1+. aux RGB
 
50
#define NUM_CHANNEL_MODES   (1 + NUM_RGB_AUX_CHANNEL_MODES)
58
51
enum CHANNEL_MODES {
59
52
    CM_MAIN = 0,
60
 
    CM_AUXRED,
61
 
    CM_AUXYEL,
62
 
    CM_AUXGRN,
63
 
    CM_AUXCYN,
64
 
    CM_AUXBLU,
65
 
    CM_AUXPRP,
66
 
    CM_AUXWHT,
 
53
    RGB_AUX_ENUMS
67
54
};
68
55
 
69
56
#define DEFAULT_CHANNEL_MODE  CM_MAIN
70
57
 
71
 
#define CHANNEL_MODES_ENABLED 0b00000001
72
 
#define CHANNEL_HAS_ARGS      0b00000000
 
58
// right-most bit first, modes are in fedcba9876543210 order
 
59
#define CHANNEL_MODES_ENABLED 0b0000000000000001
73
60
// no args
74
61
//#define USE_CHANNEL_MODE_ARGS
75
62
//#define CHANNEL_MODE_ARGS     0,0,0,0,0,0,0,0
76
63
 
77
 
#define SET_LEVEL_MODES      set_level_main, \
78
 
                             set_level_auxred, \
79
 
                             set_level_auxyel, \
80
 
                             set_level_auxgrn, \
81
 
                             set_level_auxcyn, \
82
 
                             set_level_auxblu, \
83
 
                             set_level_auxprp, \
84
 
                             set_level_auxwht
85
 
// gradual ticking for thermal regulation
86
 
#define GRADUAL_TICK_MODES   gradual_tick_main, \
87
 
                             gradual_tick_null, \
88
 
                             gradual_tick_null, \
89
 
                             gradual_tick_null, \
90
 
                             gradual_tick_null, \
91
 
                             gradual_tick_null, \
92
 
                             gradual_tick_null, \
93
 
                             gradual_tick_null
94
 
 
95
64
 
96
65
#define PWM_CHANNELS 1  // old, remove this
97
66
 
99
68
#define PWM_GET       PWM_GET8
100
69
#define PWM_DATATYPE  uint16_t  // is used for PWM_TOPS (which goes way over 255)
101
70
#define PWM_DATATYPE2 uint16_t  // only needs 32-bit if ramp values go over 255
102
 
#define PWM1_DATATYPE uint8_t   // 1x7135 ramp
 
71
#define PWM1_DATATYPE uint8_t   // regulated ramp
103
72
 
104
 
#define PWM_TOP       ICR1   // holds the TOP value for for variable-resolution PWM
 
73
#define PWM_TOP       ICR1   // holds the TOP value for variable-resolution PWM
105
74
#define PWM_TOP_INIT  255    // highest value used in top half of ramp
106
75
#define PWM_CNT       TCNT1  // for dynamic PWM, reset phase
107
76
 
 
77
// regulated channel
108
78
#define CH1_PIN PB3            // pin 16, Opamp reference
109
79
#define CH1_PWM OCR1A          // OCR1A is the output compare register for PB3
110
80
 
111
 
#define PWM1_PHASE_RESET_OFF  // force reset while shutting off
112
 
#define PWM1_PHASE_RESET_ON   // force reset while turning on
113
 
#define PWM1_PHASE_SYNC       // manual sync while changing level
114
 
 
115
 
#define LED_ENABLE_PIN  PB0    // pin 19, Opamp power
116
 
#define LED_ENABLE_PORT PORTB  // control port for PB0
117
 
 
118
 
#define LED_ENABLE_PIN2  PC0   // pin 15, boost PMIC enable
119
 
#define LED_ENABLE_PORT2 PORTC // control port for PC0
 
81
#define CH1_ENABLE_PIN  PB0    // pin 19, Opamp power
 
82
#define CH1_ENABLE_PORT PORTB  // control port for PB0
 
83
 
 
84
#define CH1_ENABLE_PIN2  PC0   // pin 15, boost PMIC enable
 
85
#define CH1_ENABLE_PORT2 PORTC // control port for PC0
120
86
 
121
87
// e-switch
122
88
#define SWITCH_PIN   PA7    // pin 20
179
145
#undef USE_INDICATOR_LED_WHILE_RAMPING
180
146
#endif
181
147
 
182
 
void set_level_main(uint8_t level);
183
 
 
184
 
bool gradual_tick_main(uint8_t gt);
185
 
 
186
148
 
187
149
inline void hwdef_setup() {
188
150
    // enable output ports
189
151
    // boost PMIC on/off
190
 
    DDRC = (1 << LED_ENABLE_PIN2);
 
152
    DDRC = (1 << CH1_ENABLE_PIN2);
191
153
    // Opamp level and Opamp on/off
192
154
    DDRB = (1 << CH1_PIN)
193
 
         | (1 << LED_ENABLE_PIN);
 
155
         | (1 << CH1_ENABLE_PIN);
194
156
    // aux R/G/B, button LED
195
157
    DDRA = (1 << AUXLED_R_PIN)
196
158
         | (1 << AUXLED_G_PIN)