01_setup.ino 744 B

1234567891011121314151617181920212223242526272829303132
  1. void setup() {
  2. Serial.begin(115200);
  3. pinMode(LEFT_MOTOR_PIN, OUTPUT);
  4. pinMode(RIGHT_MOTOR_PIN, OUTPUT);
  5. pinMode(LEFT_MOTOR_DIRECT_PIN, OUTPUT);
  6. pinMode(RIGHT_MOTOR_DIRECT_PIN, OUTPUT);
  7. for(byte i = LOW_CHANNEL; i <= NUM_CHANNELS; i++) {
  8. pinMode(channels[i], INPUT);
  9. }
  10. enableInterrupts();
  11. delay(2000);
  12. }
  13. void enableInterrupts() {
  14. for(byte i = 0; i <= NUM_CHANNELS; i++) {
  15. byte pin = channels[i];
  16. *digitalPinToPCMSK(pin) |= bit (digitalPinToPCMSKbit(pin)); // enable pin
  17. PCIFR |= bit (digitalPinToPCICRbit(pin)); // clear any outstanding interrupt
  18. PCICR |= bit (digitalPinToPCICRbit(pin)); // enable interrupt for the group
  19. }
  20. }
  21. // handle pin change interrupt for D8 to D13 here
  22. ISR (PCINT0_vect) {
  23. readPins();
  24. }