Hallo Fieke
Das ist ein interessantes Projekt. Allerdings ist Linienfolgen nicht wirklich die Spezialdisziplin des RP6. Schnelle Motoränderungen belasten das Getriebe sehr.
Könnte das die Lösung für dein Problem sein?
Code:
#include "RP6RobotBaseLib.h"
int main(void)
{
initRobotBase();
powerON();
uint8_t temp_E_INT1;
uint8_t temp_SCL;
uint8_t temp_SDA;
DDRA &= ~E_INT1; // Datenrichtung Eingang
DDRC &= ~(SCL | SDA);
PORTA &= ~E_INT1; // PullUps deaktivieren
PORTC &= ~(SCL | SDA);
while(true)
{
temp_E_INT1 = PINA & E_INT1; // Pins einlesen
temp_SCL = PINC & SCL;
temp_SDA = PINC & SDA;
if(temp_E_INT1)
{
writeString_P("\nINT1 is hoog\n");
}
if(!temp_E_INT1)
{
writeString_P("\nINT1 is laag\n");
}
if(temp_SCL)
{
writeString_P("\nSCL is hoog\n");
}
if(!temp_SCL)
{
writeString_P("\nSCL is laag\n");
}
if(temp_SDA)
{
writeString_P("\nSDA is hoog\n");
}
if(!temp_SDA)
{
writeString_P("\nSDA is laag\n");
}
mSleep(300);
}
return 0;
}
Du darst die Pinabfrage selbstverständlich auch direkt als Bedingung verwenden:
Code:
if(PINA & E_INT1)
{
writeString_P("\nINT1 is hoog\n");
}
else
{
writeString_P("\nINT1 is laag\n");
}
Gruß
mic
Lesezeichen