hatte vor kurzem das gleiche problem... wenn du den Servo an ADC0 oder ADC1 anschließen willst dann mach es so:
1 : Rotes Kabel (Spannungsversorgung+, VDD)
2 : Schwarzes Kabel (Spannungsversorgung-, GND)
3 : Weißes Kabel (Impuls)
und jetzt kannste z.B. des als Code verwenden:
is en leicht veränderter code von radbruch:
Code:
// Servoansteuerung mit sleep(), Servoimpuls an ADC0, 2 Positionen 10.1.09 mic
#include "RP6RobotBaseLib.h"
uint8_t i;
int main(void)
{
initRobotBase(); // initialisieren
DDRA |= 1; // Datenrichtung Port A Bit 0 (das ist ADC0) auf Ausgang
while(true)
{
for(i=0;i<100; i++) // 100 mal Impuls für Position 1 senden
{
PORTA |= 1;
sleep(2);
PORTA &= ~1;
sleep(200-2);
}
for(i=0;i<100; i++) // 100 mal Impuls für Position 2 senden
{
PORTA |= 1;
sleep(12);
PORTA &= ~1;
sleep(200-12);
}
for(i=0;i<100; i++) // 100 mal Impuls für Position 3 senden
{
PORTA |= 1;
sleep(20);
PORTA &= ~1;
sleep(200-20);
}
for(i=0;i<100; i++) // 100 mal Impuls für Position 4 senden
{
PORTA |= 1;
sleep(12);
PORTA &= ~1;
sleep(200-12);
}
}
return(0);
}
Lesezeichen