Hallo,
ich habe bisher immer mit Arduino programmiert, was ich sehr einfach
fande. Nun möchte ich aber ein kontroller einbauen und den dort lassen.
Dafür wäre mir ein Arduino zu teuer. Daher habe ich einen Attiny45
genommen.
Da ich das PRogrammieren mit den Controllern sehr schwierig finde, habe
ich im Netz gesucht und bin auch fündig geworden
1 | #define F_CPU 1000000UL
|
2 | #include <stdlib.h>
|
3 | #include <stdio.h>
|
4 | #include <stdint.h>
|
5 | #include <avr/io.h>
|
6 | #include <util/delay.h>
|
7 |
|
8 | void init_timer(){
|
9 | TCCR0A |= (1<<WGM00) | (1<<WGM01);
|
10 | TCCR0A |= (1<<COM0A1);
|
11 | TCCR0B |= (1<<CS00) | (1<<CS01);
|
12 | OCR0A = 0;
|
13 | }
|
14 |
|
15 | void init_servo(){
|
16 | DDRB |= (1<<PB0);
|
17 | PORTB &= ~(1<<PB0);
|
18 | }
|
19 |
|
20 | int main(){
|
21 | int i;
|
22 | init_servo();
|
23 | init_timer();
|
24 | while(1){
|
25 | for(i=5; i<40; i++) {
|
26 | OCR0A = i;
|
27 | _delay_ms(15);
|
28 | }
|
29 | for(i=40; i>5; i--) {
|
30 | OCR0A = i;
|
31 | _delay_ms(15);
|
32 | }
|
33 | }
|
34 | return 0;
|
35 | }
|
dort lass ich mittels eines PWM-Signals einen Servo hin und her fahren.
Allerdings habe ich dazu noch zwei fragen.
Vorweg sei ncoh gesagt, dass ich mir das datenblatt zum kontroller
angeseheen habe, aber nicht wirklich verstanden habe.
meine Fragen wären, woher weiss ich in der main-funktion, dass das
PWM-Siganl an PB0 herauskommt? kommt es da überhaupt raus? PB0 ist halt
der einzige deklarierte ausgang.
Die zweite Frage wäre, woher weiss ich, wie groß die PWM ist? und auf
wie viel grad mein Servo fährt? (zweiteres könnte ich auch durch
ausprobieren herausfinden.
Wäre nett, wenn mir jemand diese fragen beantworten könnte, aber bitte
so, dass es ein leie (wie ich es bin) versteht.
recht herzlichen Dank