Hallo zusammen,
möchte gerne mit dem RP6 meinen Robosapien V1 steuern.
Leider funktioniert es nicht unten mein Anweisungen. Den TimerInterupt habe ich in der RP6RobotBaselib auskommentiert. Vielleicht hat einer nen Tip!
Code:
#include "RP6RobotBaseLib.h"
uint16_t z;
uint8_t i;
uint8_t ir_command;
uint16_t Zeit;
void Delay_us(uint16_t Verzoegerung)
{
Zeit=0;
while(Zeit<=Verzoegerung);
}
void ir_code_833(void)
{
for(z=0; z<= 33;z++)
{
PORTD = (1<<PIND7);
Delay_us(13);
PORTD &= ~(1<<PIND7);
Delay_us(12);
}
}
void ir_code_6666(void)
{
for(z=0; z<= 266;z++)
{
PORTD = (1<<PIND7);
Delay_us(13);
PORTD &= ~(1<<PIND7);
Delay_us(12);
}
}
ISR (TIMER2_OVF_vect)
{
Zeit++;
}
int main(void)
{
initRobotBase();
TCCR2 = (1 << WGM21) | (0 << COM20) | (1 << CS20);
OCR2 = 0x08; // 0x66 = 78,4kHz @8MHz
// Initialize Timer Interrupts:
TIMSK = (1 << OCIE0); //| (1 << OCIE2); // Fixed: Timer2 Interrupt is turned
// off by default now! It is only active
// when ACS/IRCOMM are transmitting.
TIMSK |= (1 << OCIE2);
while(true)
{
ir_command=137; //Left Arm Up
ir_code_6666(); //ir-signal 6666us
for( i=1; i<= 8;i++)
{
if ((ir_command & 0x80)==0)
{
Delay_us(833);
ir_code_833();
}
else
{
Delay_us(3333);
ir_code_833();}
ir_command=ir_command << 1;
}
}
return(0);
}
Lesezeichen