Du hast recht mit der Belegung der Pins. Sorry. Muss mich noch mehr einlesen...
Gruß
mic
[Edit]
Echt kniffelig. Inzwischen habe ich noch einen dritten Versuch auf der selben Codebasis gefunden. Die funktioniert leider auch nicht:
https://www.roboternetz.de/community...28-ACS-Problem
Warum verwendet ihr nicht die Funktionen aus der probot-Library?
Code:
ACS_INIT()
Initialisiert das Anti-Collisions-System, muss vor der Benutzung aufgerufen werden.
ACS_LEFT() as byte
Gibt des Status der Hindernis-Erkennung zurück (linker Sensor):
1 = kein Hindernis
0 = Hindernis erkannt
ACS_RIGHT() as byte
Gibt des Status der Hindernis-Erkennung zurück (rechter Sensor):
1 = kein Hindernis
0 = Hindernis erkannt
Die Antwort kann ich mir selbst geben: Weil der Code der Library die Basis für eure Varianten ist:
Code:
/---[ ACS System ]-------------------------------------------------------------
void ACS_INIT(byte sensitivity)
{
//Calculating the pulse width modulation
//Timer_T3PWM(Par1,Par2,PS);
//Period=Par1*PS/FOSC (51*8/14,7456MHz=27,66 µs) = 36Khz
//Pulse=Par2*PS/FOSC (25*8/14,7456MHz=13,56 µs) On Time
//Timer_T3PWM(word period,word PW0,byte PS) '36Khz
Timer_T3PWM(51,sensitivity,PS_8); //with Par1, Par2 can reach altered!
//Responding To the ACS must be sensitive To these parameters are screwed!
}
//---[ Read ACS Sensor right ]--------------------------------------------------
byte ACS_RIGHT(void)
{
byte ACS_Right;
Port_WriteBit(IR_left,PORT_OFF);
Port_WriteBit(IR_right,PORT_ON);
AbsDelay(5);
ACS_Right=Port_ReadBit(TSOP);
Port_WriteBit(IR_right,PORT_OFF);
return ACS_Right;
}
//---[ Read ACS Sensor left ]---------------------------------------------------
byte ACS_LEFT(void)
{
byte ACS_Left;
Port_WriteBit(IR_right,PORT_OFF);
Port_WriteBit(IR_left,PORT_ON);
AbsDelay(5);
ACS_Left=Port_ReadBit(TSOP);
Port_WriteBit(IR_left,PORT_OFF);
return ACS_Left;
}
Lesezeichen