Ich versuche gerade, mittels SPI mit einem AS5048A zu kommunizieren, allerdings bin ich gerade ein wenig überfordert. Wie konfiguriert man den SPI-Bus richtig? Und wie läuft das eigentlich genau mit der Kommunikation ab?
Ich dachte jetzt eigentlich, dass ich ein Byte sende und dann ein Byte zurück bekomme, oder sind das immer zwei Bytes (wegen 16-Bit?). Irgendwie steh ich da noch total auf dem Schlauch.
Hier mal mein kleines Testprogramm:
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600
Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 16
Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , _
Db7 = Porta.0 , E = Porta.4 , Rs = Porta.5
Config Lcd = 20 * 4
Cursor Off
Cls
Spiinit
Dim Angle As Integer
Do
Angle = Spimove(&h3fff , 2)
Locate 1 , 1
Lcd Angle
Waitms 100
Loop
Beim Kompilieren bekomm ich dann drei Fehler: Invalid Datatype, Variable not dimensioned und Loop expected
Keine Ahnung, wie ich da rangehen soll...
Edit: 0x3fff ist natürlich schwachsinn, &h3fff muss es heißen, aber irgendwie bekomm ich trotzdem nix gescheites...
Lesezeichen