So leute habe meinen Fehler gefunden.
Habe jetzt das Senden an den DAC in 2 Schritte unterteilt und damit gelöst.
Hier der Code :
Anscheinend treten beim Senden von 2 Bytes Bitverschiebungen auf, die wohl erst auf einem digitalem Osziloskop auftauchen. Tja hab ich als Azubi nicht, Pech gehabtCode:$regfile = "m32def.dat" $framesize = 40 $swstack = 32 $hwstack = 32 $crystal = 8000000 $baud = 19200 Enable Interrupts Config Com1 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 ' zum debuggen Config Portd.7 = Output Dim Spioutputlsb As Byte Dim Spioutputmsb As Byte Dim I As Byte Dim J As Byte I = 0 J = 0 Portd.7 = 0 Spioutputlsb = 0 Spioutputmsb = 0 Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 64 , Noss = 0 'testweise auf Softspi umgestellt, kein Unterschied 'Config Spi = Soft , Din = Pinb.6 , Dout = Portb.5 , Ss = Portb.2 , Clock = Portb.7 , Mode = 3 , Ss = None Spiinit Waitms 5 Do 'Main For J = 0 To 15 For I = 0 To 255 ' entspricht &B_0000_0000-_1111_1111 und damit dem lowbyte Spioutputlsb = I Spioutputmsb = J + 48 'also GN=1(Vref*1) und SHDN auf 1 (disabled) 'entspricht entspricht &B_0011_0000-_0011_1111 und damit dem high byte Waitms 5 ' damit man die Änderungen auch sehen kann Portd.7 = 0 Waitus 1 Spiout Spioutputmsb , 1 Waitus 1 Spiout Spioutputlsb , 1 Waitus 1 Portd.7 = 1 Waitus 1 Next I Next J Loop 'erwartet wird eine Sägezahnkurve von GND-5V
Hoffe trotzdem euch hiermit geholfen zu haben.





Zitieren
Lesezeichen