-
-
Hab gestern zufällig ein Programm in C gefunden hier im Netz um 3 Servos gleichzeitig anzusteuern, allerdings find ichs jetzt nicht mehr....
naja also das grundPirnzip is mir ja klar, allerdings weiß ich dann bei den registern nicht mehr weiter.
ich bin jetzt ma soweit:
// ATmega 8 mit nem 3,6864 MHz Quarz
#include <avr\io.h>
#include <avr\signal.h>
#include <avr\interrupt.h>
#define SYSCLK 3686400
int main(void)
{
zaehler = 0;
sei();
DDRB = (1<<PB0);
PORTB = (1<<PB0);
TCCR1A = (1<<WGM11)|(1<<WGM10)|(1<<COM1A1);//10 Bit PWM nichtinvertierend
TCCR1B = (1<<CS12) | (1<<CS10);// Takt von CLK/1024=> Timer wird mit einer Frequenz von 3600 Hz versorgt,Timer wird gestartet
Also jetzt hab ich das soweit verstanden dass mein Timer 1 hochzählt und wenn er ganz oben ist wieder auf 0 gesetzt wird. Und das ich einen zweiten timer brauch der für 1 bis 2 ms läuft und mir so dir richtung bzw position vom servo vorgibt.
So jetzt hab ich mir aber schon nen Haufen porgramme angschaut hier im Forum und mir is des mit de Regsiter ned ganz klar.
Also ich denke auch u wissen dass im TCNT der momentane Zählerstand drin steht. aber wieso laden die Leutz da nen Wert rein und für was is des TIMSK gut?
Achja und noch was. Viele programmierne immer ein Unterprogramm SIGNAL(SIGNALOVERFLOW0) aber rufens dann im main() ned auf?
Also wär echt toll wenn mir da jemand erfahrenes zu Seite stehen könnte
greetz Weasel
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen