@@ -77,126 +77,136 @@ template <class T> // easy printing multiple variables with separator ','
77
77
}
78
78
*/
79
79
void SWscope::start (byte _channels, int _preSamples,
80
- unsigned int _recordLenght) {
81
- ptr = samples = triggerPtr = preSamples = triggered = 0 ;
82
- stopPtr = 32767 ;
83
- samplingOn = 1 ;
84
- channels = _channels;
85
- recordLenght = maxScopeBytes / (sizeof (short ) * channels);
86
- if (_recordLenght <= recordLenght)
87
- recordLenght = _recordLenght;
88
- if (abs (_preSamples) <= recordLenght)
89
- preSamples = _preSamples;
80
+ unsigned int _recordLenght)
81
+ {
82
+ ptr = samples = triggerPtr = preSamples = triggered = 0 ;
83
+ stopPtr = 32767 ;
84
+ samplingOn = 1 ;
85
+ channels = _channels;
86
+ recordLenght = maxScopeBytes / (sizeof (short ) * channels);
87
+ if (_recordLenght <= recordLenght)
88
+ recordLenght = _recordLenght;
89
+ if (abs (_preSamples) <= recordLenght)
90
+ preSamples = _preSamples;
90
91
}
91
92
92
- void SWscope::showIfReady () {
93
- if (!canShow)
94
- return ;
95
- canShow = 0 ;
96
- Serial.begin (115200 ); // HIER doen Serial part moet buiten de bibliotheek
97
- // interrupts(); // hoeft niet
98
- while (!Serial)
99
- ; // wait on Serial Monitor
100
- Serial << " \n usPerDiv: " << usPerDiv << " \n ptr, values " ;
101
- ptr = stopPtr;
102
- do {
103
- if (channels == 1 )
104
- Serial << endl << ptr, ringBuffer.chA [ptr];
105
- if (channels == 2 )
106
- Serial << endl << ptr, ringBuffer.chAB [ptr][0 ], ringBuffer.chAB [ptr][1 ];
107
- if (channels == 3 )
108
- Serial << endl
109
- << ptr,
110
- ringBuffer.chABC [ptr][0 ], ringBuffer.chABC [ptr][1 ],
111
- ringBuffer.chABC [ptr][2 ];
112
- if (channels == 4 )
113
- Serial << endl
114
- << ptr,
115
- ringBuffer.chABCD [ptr][0 ], ringBuffer.chABCD [ptr][1 ],
116
- ringBuffer.chABCD [ptr][2 ], ringBuffer.chABCD [ptr][3 ];
117
- if (ptr == triggerPtr)
118
- Serial << " trigger" ;
119
- ptr = calcPtr (ptr + 1 );
120
- } while (ptr != stopPtr);
121
- stopPtr = 32767 ;
93
+ void SWscope::showIfReady ()
94
+ {
95
+ if (!canShow)
96
+ return ;
97
+ canShow = 0 ;
98
+ Serial.begin (115200 ); // HIER doen Serial part moet buiten de bibliotheek
99
+ // interrupts(); // hoeft niet
100
+ while (!Serial)
101
+ ; // wait on Serial Monitor
102
+ Serial << " \n usPerDiv: " << usPerDiv << " \n ptr, values " ;
103
+ ptr = stopPtr;
104
+ do {
105
+ if (channels == 1 )
106
+ Serial << endl
107
+ << ptr,
108
+ ringBuffer.chA [ptr];
109
+ if (channels == 2 )
110
+ Serial << endl
111
+ << ptr,
112
+ ringBuffer.chAB [ptr][0 ], ringBuffer.chAB [ptr][1 ];
113
+ if (channels == 3 )
114
+ Serial << endl
115
+ << ptr,
116
+ ringBuffer.chABC [ptr][0 ], ringBuffer.chABC [ptr][1 ],
117
+ ringBuffer.chABC [ptr][2 ];
118
+ if (channels == 4 )
119
+ Serial << endl
120
+ << ptr,
121
+ ringBuffer.chABCD [ptr][0 ], ringBuffer.chABCD [ptr][1 ],
122
+ ringBuffer.chABCD [ptr][2 ], ringBuffer.chABCD [ptr][3 ];
123
+ if (ptr == triggerPtr)
124
+ Serial << " trigger" ;
125
+ ptr = calcPtr (ptr + 1 );
126
+ } while (ptr != stopPtr);
127
+ stopPtr = 32767 ;
122
128
}
123
129
124
130
void SWscope::stop () { stopPtr = calcPtr (ptr + 1 ); }
125
131
126
132
void SWscope::probeA (short valueA) // 1 channel
127
133
{
128
- if (samplingOn) {
129
- ringBuffer.chA [ptr] = valueA;
130
- sampleControl ();
131
- }
134
+ if (samplingOn) {
135
+ ringBuffer.chA [ptr] = valueA;
136
+ sampleControl ();
137
+ }
132
138
}
133
139
134
140
void SWscope::probeAB (short valueA, short valueB) // 2 channels
135
141
{
136
- if (samplingOn) {
137
- ringBuffer.chAB [ptr][0 ] = valueA;
138
- ringBuffer.chAB [ptr][1 ] = valueB;
139
- sampleControl ();
140
- }
142
+ if (samplingOn) {
143
+ ringBuffer.chAB [ptr][0 ] = valueA;
144
+ ringBuffer.chAB [ptr][1 ] = valueB;
145
+ sampleControl ();
146
+ }
141
147
}
142
148
143
149
void SWscope::probeABC (short valueA, short valueB, short valueC) // 3 channels
144
150
{
145
- if (samplingOn) {
146
- ringBuffer.chABC [ptr][0 ] = valueA;
147
- ringBuffer.chABC [ptr][1 ] = valueB;
148
- ringBuffer.chABC [ptr][2 ] = valueC;
149
- sampleControl ();
150
- }
151
+ if (samplingOn) {
152
+ ringBuffer.chABC [ptr][0 ] = valueA;
153
+ ringBuffer.chABC [ptr][1 ] = valueB;
154
+ ringBuffer.chABC [ptr][2 ] = valueC;
155
+ sampleControl ();
156
+ }
151
157
}
152
158
153
159
void SWscope::probeABCD (short valueA, short valueB, short valueC,
154
- short valueD) // 4 channels
160
+ short valueD) // 4 channels
155
161
{
156
- if (samplingOn) {
157
- ringBuffer.chABCD [ptr][0 ] = valueA;
158
- ringBuffer.chABCD [ptr][1 ] = valueB;
159
- ringBuffer.chABCD [ptr][2 ] = valueC;
160
- ringBuffer.chABCD [ptr][3 ] = valueD;
161
- sampleControl ();
162
- }
162
+ if (samplingOn) {
163
+ ringBuffer.chABCD [ptr][0 ] = valueA;
164
+ ringBuffer.chABCD [ptr][1 ] = valueB;
165
+ ringBuffer.chABCD [ptr][2 ] = valueC;
166
+ ringBuffer.chABCD [ptr][3 ] = valueD;
167
+ sampleControl ();
168
+ }
163
169
}
164
170
165
- void SWscope::sampleControl () { // doen micros weggelaten if(samples == 0)
166
- // sample0_us = micros();
167
- samples++;
168
- ptr = calcPtr (ptr + 1 );
169
- if (ptr == stopPtr) {
170
- samplingOn = 0 ;
171
- canShow = 1 ;
172
- unsigned long stop_us; // doen = micros(); // to avoid delay, start with
173
- // this
174
- usPerDiv = samples > 1 ? (stop_us - sample0_us) / (samples - 1 )
175
- : 0 ; // is not exact?
176
- }
171
+ void SWscope::sampleControl ()
172
+ { // doen micros weggelaten if(samples == 0)
173
+ // sample0_us = micros();
174
+ samples++;
175
+ ptr = calcPtr (ptr + 1 );
176
+ if (ptr == stopPtr) {
177
+ samplingOn = 0 ;
178
+ canShow = 1 ;
179
+ unsigned long stop_us; // doen = micros(); // to avoid delay, start with
180
+ // this
181
+ usPerDiv = samples > 1 ? (stop_us - sample0_us) / (samples - 1 )
182
+ : 0 ; // is not exact?
183
+ }
177
184
}
178
185
179
- unsigned int SWscope::calcPtr (int _ptr) {
180
- if (_ptr >= recordLenght)
181
- return (_ptr - recordLenght); // happens most frequent
182
- if (_ptr < 0 )
183
- return (_ptr + recordLenght);
184
- return _ptr;
186
+ unsigned int SWscope::calcPtr (int _ptr)
187
+ {
188
+ if (_ptr >= recordLenght)
189
+ return (_ptr - recordLenght); // happens most frequent
190
+ if (_ptr < 0 )
191
+ return (_ptr + recordLenght);
192
+ return _ptr;
185
193
}
186
194
187
- void SWscope::trigger () {
188
- if (!triggered) {
189
- triggerPtr = ptr;
190
- stopPtr = calcPtr (triggerPtr - preSamples);
191
- triggered = 1 ;
192
- }
195
+ void SWscope::trigger ()
196
+ {
197
+ if (!triggered) {
198
+ triggerPtr = ptr;
199
+ stopPtr = calcPtr (triggerPtr - preSamples);
200
+ triggered = 1 ;
201
+ }
193
202
}
194
203
195
- void SWscope::testBuffer () {
196
- start (1 );
197
- for (int i = 0 ; i < 25000 ; i++) {
198
- if (i == 0 )
199
- trigger ();
200
- probeA (i);
201
- }
204
+ void SWscope::testBuffer ()
205
+ {
206
+ start (1 );
207
+ for (int i = 0 ; i < 25000 ; i++) {
208
+ if (i == 0 )
209
+ trigger ();
210
+ probeA (i);
211
+ }
202
212
}
0 commit comments