ich möchte ein umgebautes fergesteurtes Auto vor-, bzw. rückwärts fahren lassen, und benötige hierfür ein pwm-Signal auf zwei Pins.
ich verwende D9 und D10. wenn ich nun an D10 das pwm-Signal habe, möchte ich zu Testzwecken mit einem Button mit Interupt zwischen den beiden hin und herschalten.
Bei D10 bekomme ich das pwm-signal. auf D9 bekomme ich nur ein HIGH wenn ich den Button drücke.
kann mir da bitte jemand weiterhelfen?
Code:
int interruptNumber = 0;
int tasterPin = 2;
bool on = 1;
void setup() {
Serial.begin(9600);
DDRB |= (1 << PB2); //Port D10
DDRB |= (1 << PB1); //Port D9
TCCR1A = 0b10100011; //Clear OC1A/OC1B on compare match, set OC1A/OC1B at BOTTOM, WGM10, WGM11(Fast-PWM)
TCCR1B = 0b00011100; //CS12 - Prescaler 256; WMG12 & WGM13 für Fast-PWM
OCR1A = 455; //für benötigte Frequenz von 130Hz
OCR1B = 20;
pinMode(tasterPin, INPUT_PULLUP);
attachInterrupt(interruptNumber, interruptfunction, FALLING); //sollte PWM-Signal zwischen D9 und D10 hin und herschalten
}
void loop() {
OCR1B = map(analogRead(A0), 0, 1023, 0, 455); //Steuerung von duty-cycle
}
void interruptfunction() {
if (on == 1) {
DDRB = 0b00000100;
on = 0;
}
else {
DDRB = 0b00000010;
on = 1;
}
Serial.println(on);
}``