Kannst du deinen Print-Befehl mal posten ?
Voraussetzungen hast du ja gecheckt ?
der CoProcessor muß haben 4 MHZ / ext. Quartz
Das Kommando MUSS mit 9600 Baud daherkommen.
Hi,
habe mir die Schaltung nachgebaut. Nur klappt es ancheinend nicht mit der Kommunikation. Servo1 ist ausgewählt, aber das Servo 10 zuckt rum.
Mfg Sascha
Kannst du deinen Print-Befehl mal posten ?
Voraussetzungen hast du ja gecheckt ?
der CoProcessor muß haben 4 MHZ / ext. Quartz
Das Kommando MUSS mit 9600 Baud daherkommen.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hi,
Quartz am 90S2313 ist 4MHz. Angesteurt wird der von einem ATmega32 in C. Baudrate ist 9600.
Code:#include <avr/io.h> #include <stdio.h> #include <string.h> #include <avr/signal.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <avr/delay.h> #include "lcd.h" #include "main.h" #include "pwm.h" #include "texte.h" #include "timer.h" void print5(unsigned int x) { unsigned int y; y=x/10000;lcd_putc(y+0x30);x-=(y*10000); y=x/1000;lcd_putc(y+0x30);x-=(y*1000); y=x/100;lcd_putc(y+0x30);x-=(y*100); y=x/10;lcd_putc(y+0x30);x-=(y*10); lcd_putc(x+0x30); } void USART_transmit (unsigned char c) { while(!(UCSRA & (1<<UDRE))); UDR = c; } int main(void) { UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x67; unsigned int temp; sei(); for(;;) { USART_transmit(0x23); USART_transmit(0x53); USART_transmit(0x31); USART_transmit(1); _delay_ms(2000); USART_transmit(0x23); USART_transmit(0x53); USART_transmit(0x31); USART_transmit(255); _delay_ms(2000); } }
Hi,
habe jetzt mal die RSNX programmiert und siehe da, es funzt einwandfrei.
Mfg Sascha
Alles, was funzt, funzt.
Schau dir aber in der Doku kurz nochmal die Formate an:
Du schickst :
USART_transmit(0x31); // für Servo-#-1 das ist ASCII "1"
solltest aber schicken, als braver Junge:
USART_transmit(0x01); // für Servo-#-1 das wär Hex 1
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo PicNick
das stammte vom testen. Habe halt mehrere Sachen ausprobiert. Was auffällt, RSNX und RNS1 funktionieren tadellos. Nur RNKC10 funktioniert nicht. Obwohl mich da die I2C-Bus Funktion sehr interessiert, da zwei Servo-Controller geplant sind.
Mfg Sascha
PS. Als "guter", schicke ich ja 0x01![]()
@Hallo, Guter !
Der RNKC10 funzt nur, wenn du auf dem Hauptcontroller den I2C-Bus schweinemäßig langsam betreibst. Es ist auch ein Testprogramm dabei, das geht an sich schon, aber eben langsam.
Wenn du einen zweiten Servokontroller anhängen willst, kann ich dir einen RNSX machen mit Servos 17-26, wenn dir das hilft.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hi PicNick
zum RNKC10, der sollte ja auch mittels UART funktionieren, oder? Weil, das tut es überhaupt nicht. Die überlegung mittels I2C war halt, das mehr Servos benötigt werden (müssen). Bin noch am überlegen, ob es ein 2 Beiner werden soll oder ein Hexabot. Und ein zweiten UART haben nur die wenigsten ATmega's. Und ein Software-Uart ist ja auch nicht die Macht.
Mfg Sascha
PS: Vielleicht mal den Servo-Controller auf nen ATmega8 umschreiben?
Bietet ja Hardware-TWI
Ja, sollte er.Zitat von the_snoofy
http://www.kreatives-chaos.com/index.php?seite=rnkc10
Ich hatte vor, den Servocontroller auf einen ATTiny26 umzuschreiben. Wenn du noch zwei Wochen warten kannst, sollte der bis dahin fertig sein...
MfG Kjion
Hallo,
ich bin neu in diese Materie eingestiegen und habe versucht den RNS1 nachzubauen. Jedoch ohne Erfolg. Als alternative zum AT90S2313 gibt es ja nur noch den ATTiny2313. Habe das Programmierkabel nachgebaut und mit Pony-Prog. lässt sich der Tiny auch programmieren aber er gibt nur ein zucken der Servos von sich. Nehme ich den RNS1 von robotikhardware.de, dann funktionieren alle Servos. Ich habe auch schon das S8IO ausprobiert jedoch mit dem gleichen Ergebnis, daß alles Servos nur zucken und nicht in Neutralstellung gehen oder sich bewegen.
Vielleicht könntet ihr einem Anfänger in der Sache weiter helfen.
MfG
Martin
Lesezeichen