Ich studiere grad, wofür die Slave-Funktionen wohl überhaupt irgendeinen Timer brauchen ?
Hi,
ich baue einen Hexapod und möchte 18 Servos ansteuern! Bascom kann aber nur 12! Jetzt wollte ich für jede Seite einen Atmega8 benutzen der je 9 Servos steuert! Dann können die IC´s saubere PWN Signale erzeugen und die Positionen sollen über I2C gesetzt werden.
Im Atmega habe ich als 1. aus dem Bascom Beispiel die I2cslave getestet! geht
Dann den Servo Befehlt von Bascom! geht!
Aber beide Funktionen in einen Programm geht !nicht
Meine Frage!
Wie kann ich z.B. in "i2cslave.LBX" den Timer0 auf Timer1 ädern?
Vielleicht kennt ja jemand eine andere Lösung?
Zusatz:
Habe grad in der history.txt einen Eintrag gefunden!
1.11.7.8 NOTE : 30 - 6 - 2005
- CONFIG SERVO enhanced with selectable TIMER0 or TIMER1.
Dann habe ich getestet! geht aber nicht!
I2C geht aber ich bekomme kein Servo PWM
Gruß,Code:Config I2cslave = &H40 , Int = Int0 , Timer = Timer0 Config Servos = 1 , Servo1 = Portb.1 , Reload = 10 , Timer = Timer1
Sascha
Ich studiere grad, wofür die Slave-Funktionen wohl überhaupt irgendeinen Timer brauchen ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Schaust Du hier....Zitat von !*sascha*!
http://www.shop.robotikhardware.de/s...roducts_id=198
Gruß Richard
Hi,
Ja danke den habe ich auch gefunden! Wenn es einfach nicht klappt, werde ich in den sauren Apfel beissen!
Ich habe eben noch den Ehrgeiz alles selber zu machen! Dann kann ich die Platinen selber erstellen und passen genau in den Hexapod!
Meine 2. Überlegung ist einfach die Module via UART an meinen Hauptcontroller zu verbinden!
Bin dankbar für alle Vorschläge
Danke....
Gruß,
Sascha
Hallo PicNick,
es wird daran liegen, daß Config i2cslave anscheinend nicht die Hardware-TWI nutzt. Da viele Chips die Hardware-TWI haben frage ich mich auch, was das soll. Dafür ein Drittel aller Timer und die Hälfte der Hardwareinterrupts zu verheizen ist unschön. Ich kapiere auch nicht warum Bascom um die I2C-Slaves so einen Spektakel macht und dafür extra Geld verlangt. Für einen Hardware-TWI Slave müssen doch nur ein paar Register gesetzt werden.
Gruß Günter
Hallo Sascha,
fündig wirst du im Atmel Datasheet des ATMega8 ab Seite 184.
Wenn du das Register TWCR als Slave Receiver setzt und im Register TWAR eine Adresse hinterlegst, kann der ATMega8 ganz unbehelligt arbeiten und wird erst per Interruptflag gestört, wenn auf dem I2C-Bus die eigene Adresse aufgerufen wird.
Günter
Hallo guenter,
danke für deinen Tipp!
Mein Ziel wird es 100% sein, die Module via I2C zu verbinden!
Als 1. Lösung habe ich einen Buss mit dem UART gebaut!
( 4 Byte pro Servo )
1. Byte Servo-Nr.
2. Byte Geschwindigkeit
3. Byte Servo Winkel(Position
4. CRC8 Check
Das protokoll will ich dann auch auf dem I2C machen.
Werde dann beide Schnittstellen einbauen.
Hi *,
Hardware TWI funktioniert
Code gibt es wenn er fertig ist
Mfg
Sascha
brauchen wir nicht, es gibt dafür code wie sand am meer.....
Hallo *,
ich habe mal wieder ein kleines Problem!
Ich habe jetzt 2 controller (Atmega und 18 Servos angeschlossen.
Die Controller werden via USB 5V betrieben und die Servos über ein Labornetzteil!
Wenn ich jetzt die spannungsquellen einschalte egal in welcher Reihenfolge oder auch beides aus der Gleichen Quelle.
Laufen meine Servos alle Amok.
Der Atmega ist nicht im dauer reset! PWM liegt am PIN an!
Habe ich mit dem Scope geprüft...
Habe an jeden Controller 2x 1000µF
Wenn ich alle Servos abklemme und nach und nach anklemme geht alles nur alle gleich anschalten knallt!
Denke das Problem liegt im Bereich Stromversorgung...
Kann mir jemand helfen? Bin ja für alle Tipps offen!
@funkheld
Kennst du mehr als ich=? Ich habe kein Projekt gefunden, welches den Aufbau eines Servo-controller´s beschreibt und code + pc programm zum download anbietet!
Die Hardware wird dann in SMD aufgebaut, wenn ich weiß dass alles funktioniert....
Video:
http://www.youtube.com/watch?v=A8ek9rJrOpI
Bilder:
http://picasaweb.google.com/sascha.markward/MyHexapod#
Bild hier
Bild hier
Bild hier
Lesezeichen