-
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;
}
-
Also ich hab mir jetzt ein SRF02 zugelegt, der die Arbeit übernehmen soll.
Bei dem Timer tipp ich jetzt einfach ma auf einen Defekt.
Besteht eigentlich die Möglichkeit statt des Timer_T3PWM
den Timer_T0PWM zu nutzen?
Gruß