Hallo,
ich versuche schon seit längerem einen adc (tlc4541) auszulesen.
Zum Testen erst mal schnell in Bascom...
Der ADC sendet 16bit per SPI an meinen ATMega16, auf dem eine
Software-Spi läuft als Master.
Nur verstehe ich nicht so ganz die Routine von Bascom zum SPI...
Folgender Code funktioniert so halb; ich empfange was aber glaube nicht,
dass es stimmt. Irgendwas ist da falsch mit den empfangenen Bits?
1 | Config Spi = Soft , Din = Pina.7 , Dout = Porta.4 , Ss = Porta.1 , Clock = Porta.6
|
2 |
|
3 | Config Porta.5 = Output
|
4 | S_s Alias Porta.5
|
5 | S_s = 1
|
6 |
|
7 | Dim A(2) As Byte
|
8 | Dim Ergebnis As Word
|
9 |
|
10 | A(1) = 0
|
11 | A(2) = 0
|
12 |
|
13 | Spiinit
|
14 |
|
15 | Do
|
16 | S_s = 0
|
17 | Spiin A(1) , 1
|
18 | Spiin A(2) , 1
|
19 | S_s = 1
|
20 |
|
21 | Ergebnis = Makeint(a(2) , A(1))
|
22 |
|
23 | Waitms 100
|
24 |
|
25 | Print Ergebnis
|
26 | Loop
|
Passt das so? Das zusammensetzten aus 2*8bit stimmt so beim Empfangen?
Wäre super, wenn mir da jemand helfen könnte
Viele Grüße