Hallo allerseits,
da ich in meinem anderen Thread scheinbar keine Antworten mehr bekomme, ich aber keine 5 Posts hintereinandern schreiben will, frage ich einfach hier nochmal:
Ich habe 2 weitere Bumper und zwei Fototransistoren zum RP6 hinzugefügt und wollte nur wissen ob folgende Annahmen meinerseits stimmen:
1) Die zwei freien ADC Ports sind fix fertig programmiert und können mit den Variablen adc0 bzw adc1 mittels task_ADC(void) abgefragt werden, richtig?
2) Die zusätzlichen Bumper sind an IO2 bzw. IO4 angeschlossen. Stimmt diese RP6Lib Anpassung?
Hinzugefügt zur uint8_t getBumperRight bzw Left:
und die geänderte task_Bumpers()Code:uint8_t getBackBumperLeft(void) { PORTC &= ~SL2; DDRC &= ~SL2; nop(); uint8_t tmp = PINC & SL2; if(statusLEDs.LED2) { DDRC |= SL2; PORTC |= SL2; } return tmp; } uint8_t getBackBumperRight(void) { PORTB &= ~SL5; DDRB &= ~SL5; nop(); uint8_t tmp = PINB & SL5; if(statusLEDs.LED5) { DDRB |= SL5; PORTB |= SL5; } return tmp; }
Danke und GrußCode:volatile uint8_t bumper_timer; uint8_t bumper_left; uint8_t bumper_right; uint8_t bumper_back_left; uint8_t bumper_back_right; void task_Bumpers(void) { if(bumper_timer > 50) { // 50ms uint8_t left = getBumperLeft(); uint8_t right = getBumperRight(); uint8_t backleft = getBackBumperLeft(); //NEW uint8_t backright = getBackBumperRight(); //NEW if(bumper_left != left || bumper_right != right || bumper_back_left != backleft ||bumper_back_right != backright) { bumper_left = left; bumper_right = right; bumper_back_left = backleft; bumper_back_right = backright; BUMPERS_stateChangedHandler(); } bumper_timer = 0; } }







Zitieren

Lesezeichen