Gast
#3236689
Hallo Ich bin dabei, einen 12-Bit Drehgeber vom Typ ATD 07S A4 mithilfe eines dspic30f4011 auszuwerten. Nach Umwandlung des Differenzsignals und einlesen über die SPI-Schnittstelle habe ich versucht, die eingelesenen 16-Bit-Werte direkt auszugeben, was mir jedoch leider nicht gelingen will. Folgende zwei Probleme treten auf: 1. Die Ausgabewerte springen ständig zwischen zwei Werten. 2. Wenn ich dieses Signal dennoch um vier Stellen shifte (für 12 Bit) und in ein Binärsignal umwandel zählt er die Winkel nicht wie gewünscht von 0 - 4095 pro Umdrehung ständig hoch, sonder zählt bis 4095, dann rückwärts zurück zu null und wieder hoch in der doppelten Geschwindigkeit. Anbei die Konfiguration meiner Schnittstelle und der Aufruf derselben: OpenSPI1( FRAME_ENABLE_OFF & FRAME_SYNC_OUTPUT & DISABLE_SDO_PIN & SPI_MODE16_ON & SPI_SMP_ON & SPI_CKE_ON & SLAVE_ENABLE_OFF & CLK_POL_ACTIVE_LOW & MASTER_ENABLE_ON & SEC_PRESCAL_3_1 & PRI_PRESCAL_16_1, SPI_ENABLE & SPI_IDLE_STOP & SPI_RX_OVFLOW_CLR); Der Aufruf der Schnittsteller erfolgt mit 15kHz über S90EN = 0; delay(6); WriteSPI1(0x0000); while (SPI1STATbits.SPIRBF == 0); winkel = ReadSPI1(); winkel = winkel >> 4; S90EN = 1; Hierbei ist die Ausgabe schon fehlerhaft. Bin etwas ratlos.