Hallo
Du benötigst neben dem eigentlichen Programm (https://www.roboternetz.de/phpBB2/ze...=328824#328824) auch die zwei Lib-Dateien (https://www.roboternetz.de/phpBB2/ze...=329255#329255) um es kompilieren zu können. Die Libs sind nötig, weil wir einen freien Timer für die 100000kHz/10us brauchen. PC0/SCL ist die Richtung, PC1/SDA die Geschwindigkeit. Ich kann dir auch die fertige Hex-Datei raussuchen (btw. war das vor über 2 Jahren), aber dann geht der Lerneffekt für dich noch mehr gegen null.
ansonsten Frag doch einfach Radbruch in einer PN, der beisst nicht!
Naja, beissen tu ich natürlich nicht, aber persönlichen Support per PN/Mail lehne ich normalerweise ab, denn der Sinn des Forums ist doch die Öffentlichkeit der Beiträge.
Gruß
mic
[Edit] Bei der Suche nach dem Hex-File habe ich noch was nettes gefunden:
Code:
// Auswerten eines 2-Kanal RC-Empfängers an PortC0 und PortA4 31.12.2007 mic
// Mit der RP6-Library, blockierend wie sleep(), ohne timeout!!!
// Besser ist ein Anschluß an ADC0/ADC1 (PortA0 und PortA1)
#include "RP6RobotBaseLib.h" // Library einbinden
#include "RP6uart.h" // Zum Debuggen, wir wollen ja was sehen,
#include "RP6uart.c" // auch wenn wir kein LCD besitzen
uint8_t read_rc(uint8_t kanal)
{
extern uint8_t delay_timer; // der sleep()-Timer aus RP6RobotBaseLib.c
if (kanal == 1) // Eingang Kanal 1 der RC-Fernbedienung (SCL xBus Pin10)
{
while (!(PINC & 1)); // Warten auf aufsteigende Flanke
sleep(0); // setzt den delay_timer auf 0
while (PINC & 1); // Warten auf absteigende Flanke
return (delay_timer); // Fertig, Rückgabewert in 0.1ms
}
if (kanal == 2) // Eingang Kanal 2 der RC-Fernbedienung (E_INT1 xBus Pin8)
{
while (!(PINA & E_INT1)); // Warten auf aufsteigende Flanke
sleep(0); // setzt den delay_timer auf 0
while (PINA & E_INT1); // Warten auf absteigende Flanke
return (delay_timer); // Fertig, Rückgabewert in 0.1ms
}
return(0); // ungültiger Parameter übergeben
}
int main(void)
{
initRobotBase();
DDRC &= ~1; // Ports auf Eingang (SCL)
PORTC &= ~1; // und PullUps aus
extIntOFF(); // E_INT1 auf Eingang
setLEDs(1); // Anzeige Programm gestartet
writeString_P("\n\n\r2-Kanal RC-Empfänger einlesen 31.12.07 mic\n\r");
while(1)
{
writeString_P("\n\r");
writeString_P("Kanal 1: ");
writeInteger(read_rc(1), 10);
writeString_P(" Kanal 2: ");
writeInteger(read_rc(2), 10);
mSleep(300);
}
return 0;
}
:)
Ich bin nicht sicher ob es das richtige Hex-File ist..
Lesezeichen