Servo dreht sich nicht 
musst noch unsigned char i; dazu schreiben, hattest du vergessen oder? <-- Weiß nicht ob die Zeile auch ok ist...
Beim Compilieren ist kein Fehler gewesen.
Servo ist mit gleicher masse verbunden.
Servo steuersignal ist auf PB1
Taster ist auf PD2
Mein aktueller Code:
Code:
#include <avr/io.h>
#include <stdbool.h>
#include <stdlib.h>
#include <avr/io.h>
#include <AVR/iom8.h>
#include <inttypes.h>
#include <util/delay.h>
#define F_CPU 12000000 // clock
// Timer1 initialisieren
void timer1_init(void)
{
TCCR1A |= (1<<WGM11)|(1<<COM1A1)|(1<<COM1A0); // initalize mega8 Timer1 with 9Bit, inverted, Prescaler 256
TCCR1B = (1<<CS12); // this gives us a signal with 21.76ms at 12MHz
OCR1A = 476; // pulse of 1.5ms 512- 1500*(F_CPU/256/1000000)/2
// Hier wieder der PWM auf mittelstellung gebracht oder?
}
int main (void)
{
unsigned char i; /* Variable i */
DDRB = ( 1 << PB1 ); /* Pin PB0 als Ausgang für Servo */
DDRD &= ~ (1<<PD2); /* Pin D2 als Eingang */
PORTD |= (1<<PD2); /* Pull Up von PIN D2 aktivieren */
while(1){
if (!( PIND & (1<<PIND2))) /* mache was wenn PinD2 low ist */
{
if(OCR1A > 452){
OCR1A--; /* Pulsbreite verkürzen */
}
} else {
OCR1A = 476;
}
for(i=0;i<50;i++)
_delay_ms(10);
}
}
Lesezeichen