/*
Performance Improvement:
Original .............................................. 80%
temporary test --> delete scope chip .................. 90%
temporary test --> timer start 1000 ................... 100%
temporary test --> comment out calc_hz_duty(chip); .... 84%
temporary test --> comment out draw_plot function ..... 96%
temporary test --> comment out draw_string function ... 80%
TODO:
Add more bandwidth, faster signals use pin_Watch for digital signals
pin_watch
https://wokwi.com/projects/329456176677782100
https://wokwi.com/projects/330669951756010068
https://wokwi.com/projects/343522915673702994
Simmulation Based on ESP32
Only draw plots that have a signal connected
Auto scale signal to 1.5, 2, 2.5 or 3 cycles
Use timer start more effectively?
more accurate duty, Hz calulations on non triggered channels
narrower scan line, shaded dark green?
https://github.com/Dlloydev/Wokwi-Chip-Scope GitHub
https://wokwi.com/projects/359016481044784129 WIP_Scope.ino
https://wokwi.com/projects/359331973918199809 Scope.ino
https://wokwi.com/projects/359330496025635841 README_Scope_Chip.md
WIP for version 1.0.7
*/
#include <pwmWrite.h>
Pwm pwm = Pwm();
int servoPin = 23;
int pwmPin = 22;
int nledPin = 21;
int ledPin = 19;
int pos = 0;
bool ledState;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(nledPin, OUTPUT);
pinMode(pwmPin, OUTPUT);
analogWrite(pwmPin, 63);
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) {
ledState = !ledState;
digitalWrite(ledPin, ledState);
digitalWrite(nledPin, !ledState);
pwm.writeServo(servoPin, pos);
delay(5);
}
for (pos = 180; pos >= 0; pos -= 1) {
ledState = !ledState;
digitalWrite(ledPin, ledState);
digitalWrite(nledPin, !ledState);
pwm.writeServo(servoPin, pos);
delay(5);
}
}