PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Control und RN-Speak verstehen sich nicht!!



tliebl00
18.02.2005, 18:03
Hallo,
ich habe eine C-Control und ein RN-Speak-Board miteinander verbunden. Ein Basic-Listing sollte das Board über die Adresse H52 (dez. 82) ansprechen, und ein Byte mit der Wertigkeit 1 übertragen. Aber das Board spricht leider nicht(oder nicht richtig). Der I2C-Bus hat da irgendwie danach einen undefinierten Zustand. Ich habe hier glaube ich einen Grundsatzfehler drin.
auf dem Board befinden sich die Zahlen von 1 bis 100 aufgesprochen. Der Erfolg sieht folgendermassen aus. Wenn die CC startet spricht das Board eine 1 und bleibt hängen.Ich werd auch nicht schlau, wo die getack-routine greifen soll! Ich bin leider noch nicht so fit und versuche mein möglichstes. Hat jemand vielleicht eine Idee oder kann mir helfen ??

' C-Control/BASIC tom002.BAS
' - Ansteuerung eines I2C-Bus Slaves Adresse H52
' - Ansteuerung eines rn-speak Board
'**************************************
define SDA port[8]
define SCL port[7]
define PCFDaten byte
define Zaehler byte
define N byte


SDA = ON
SCL = ON


for Zaehler = 1 to 10
gosub I2C_start
pcfdaten = 82 'Adresse rnspeak
gosub I2C_schreiben

pcfdaten = Zaehler
gosub I2C_schreiben
gosub I2C_stop
next


#I2C_start
SDA = OFF
SCL = OFF
return

#I2C_stop
SDA = OFF
SCL = ON
SDA = ON
return

#I2C_schreiben
for N = 1 to 8
SDA= OFF
if (pcfdaten AND 128) = 128 then SDA = ON
pulse SCL
pcfdaten = pcfdaten shl 1 '1 Bit nach links
next
pulse SCL ' 9. Impuls
'gosub getack
return

'#acknowlege
' SDA = 0
' pulse SCL
' return

'#getack
'SDA = 1
'deact SDA
'SCL = ON
'wait not SDA
'SCL = OFF
'return

'#NoAcknoledgement
' SDA = 1
' pulse SCL
' return

end

tliebl00
19.02.2005, 08:15
Hallo,
Ich hab die Lösung gefunden. Der RN-Speak braucht meiner Erkenntnis nach kein ack-Signal, da er die gesendeten Werte zwischenspeichert. Es funktioniert mittlerweile so halbwegs. O:)