nil.at
09.12.2008, 15:17
Hallo allerseits,
da ich in meinem anderen Thread (https://www.roboternetz.de/phpBB2/viewtopic.php?t=43982&start=22) 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:
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()
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ß
da ich in meinem anderen Thread (https://www.roboternetz.de/phpBB2/viewtopic.php?t=43982&start=22) 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:
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()
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ß