PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega8 - Pin für mehrere Funtkionen verwenden?



Cairol
15.09.2007, 16:59
Hallo!

Ich baue gerade eine Schaltung mit einem Mega8 auf.
Die beiden 16-Bit-PWM-Kanäle OC1A & OC1B sind schon für die Motor- und Lenkungsansteuerung vergeben.
Jetzt hab ich aber noch einen Servo der ebenfalls gesteuert werden will.
Der Mega8 hat zwar noch einen 3. PWM-Kanal "OC2" - allerdings hat dieser Pin auch die Funktion "MOSI" - also ein Anschlussteil für den ISP-Programmer.

Kann ich den Servo trotzdem über OC2 laufen lassen, oder gibt es da Ärger wenn ich den M8 über das ISP-Dongle programmiere?
Darf ich den ISP-Stecker angesteckt lassen wenn ich die Boardfunktionen (spezielle den Servo) teste?

Zur Not wechsle ich den M8 gegen einen M168 aus, aber das möchte ich eigentlich vermeiden.
Könnt ihr mir hier weiterhelfen?

Gruß, Cairol

Hubert.G
15.09.2007, 17:12
Grundsätzlich kannst du den Pin verwenden, da die Funktion MOSI nur wärend dem Programmieren aktiv ist. Es könnte allerdings wärend des Programmierens dein Servo etwas durcheinander kommen. Wenn dich das stört eine Trennmöglichkeit vorsehen.
Wenn die Last auf dem Pin zu groß ist, sodas der ISP-Dongle sie nicht mehr treiben kann, dann funktioniert es auch nicht.

Torsten_G
15.09.2007, 21:20
Hi,

in Bascom kannst Du mit dem PulseOut bzw. dem Servo-Befehl jeden beliebigen Pin für das Servo verwenden.

Pulseout finde ich persönlich besser, weil es keinen Timer belegt und darüber hinaus auch noch höhere Auflösungen möglich sind. Die 50Hz (20ms) Wiederholfrequenz des PWM-Steuersignals sind nicht lebenswichtig, bereits ab ca. 5ms Signalabstand funktioniert das Servo anstandslos.

Nur viel länger als 20ms sollte der Abstand nicht werden, sonst hält das Servo die Position nicht mehr stabil.

Grüße

Torsten

Cairol
16.09.2007, 16:55
Also das heißt der SERVO-Befehl erzeugt prinzipiell auf jedem Pin den ich dort angebe die Steuer-Impulse - auch wenn es keiner der PWM-Pins ist!?

Das wäre allerdings sehr praktisch.

Torsten_G
16.09.2007, 19:38
So ist es - allerdings belegt "Servo" einen Timer...

Wie gesagt, "Pulseout" funktioniert meiner Ansicht nach etwas besser.

Grüße

Torsten