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:
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; 
}
und die geänderte task_Bumpers()
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; 
   } 
}
Danke und Gruß