Hallo
Ich hätte eine Frage wie schaffe ich es einen Servo der Make HiTec Hs-311 in die Mittelpostition zu bringen.
Ich habe es schon mit Folgendem Code Probiert. Wobei mein Servo auf dem PORT D Pin 3 liegt.
Ist es möglich das Folgender Code mit meinem Atmega8 nicht möglich ist?
Denn code habe ich von https://www.roboternetz.de/wissen/index.php/Servos
Code:
#define F_CPU 3686400
#include <avr/io.h>
#include <avr/delay.h>
#include <avr/interrupt.h>
#define SERVOPIN 3
#define SERVOPORT PORTD
#define DDRSERVO DDRD
volatile unsigned char servopos;
void servo_init()
{
TIMSK|=(1<<OCIE2);
TCCR2 |= (1<<WGM21) | (1<<CS20);
OCR2 = F_CPU/100000;
DDRSERVO|=(1<<SERVOPIN);
};
ISR(TIMER2_COMP_vect)
{
static int count;
if(count>servopos)SERVOPORT&=~(1<<SERVOPIN);
else SERVOPORT|=(1<<SERVOPIN);
if(count<2000+servopos)count++;
else count=0;
};
int main(void) {
servo_init();
sei();
servopos = 150;
while(1);
cli();
return 0;
}
Hoffe ihr könnt mir helfen.
lg manhunt
Lesezeichen