Hallo!
Ich habe vor ein umgebautes Servo als Antrieb zu verwenden.
Hier ist mein erstes Programm:
1 | int main(void) {
|
2 |
|
3 | //Set PORTB1 pin as output
|
4 |
|
5 | DDRB=0xFF;
|
6 |
|
7 | //TOP=FCPU/2N*50
|
8 | //FCPU=1 0000 000, N1=1
|
9 | //Phase Correct and Phase and Frequency Correct PWM
|
10 | //Clear OC1A/OC1B on Compare Match when up-counting. SetOC1A/OC1B on Compare Match when downcounting (1<<COM1A1)| (1<<COM1B1)
|
11 | //TOP=ICR1 = 10 000
|
12 | //Prescaler = 1
|
13 | // 1ms - 500, 2ms - 1000
|
14 | // Motor 2B middle OCR1B = 719
|
15 | // Motor 1A middle OCR1A = 697
|
16 |
|
17 | TCCR1A = (1<<COM1A1)| (1<<COM1B1) | (0<<WGM11);
|
18 | TCCR1B = (1<<WGM13) | (1<<CS10);
|
19 | ICR1 = 10000;
|
20 | OCR1A = 697;
|
21 | OCR1B = 719;
|
22 | for (;;) {
|
23 | }
|
24 | }
|
Dadurch sollten sich beide Servos nicht drehen. Allerdings wenn eine
Spannung angelegt wird, drehen sie sich kurz. Wie kann man verhindern,
dass beim Einschalten von dem AVR eine Spannung auf dem Ausgabepin
angelegt wird?