Amiwerewolf
30.11.2007, 21:16
läuft das programm so?
ich hab keine SPI komponente da um es zu testen!
'//////////////////////////////////////
'
' Basic++
' Controller: C-Control I Unit M2.0
' Station2
' Beschreibung: Ansteuerung einer SPI-Komponente
' Datum: 30.11.07
'
'//////////////////////////////////////
OPTION CC2.0
DEFINE SLCK AS BIT 'später durch PORT ersetzten
DEFINE SDI AS BIT 'später durch PORT ersetzten
DEFINE SDO AS BIT 'später durch PORT ersetzten
DEFINE CS1 AS BIT 'später durch PORT ersetzten
DEFINE data as byte
#main
init_spi() 'SPI INITIALISIERN
spi(12) 'Byte 12 an Bus senden
data = spi(0) 'Byte am Bus lesen
print data 'gelesenes byte ausgeben
END
SUB init_spi() 'SPI Initialisieren
CS1 = ON 'SPI Slave 1 dekativieren
'CSn = OFF 'ggf. weitere Slaves deaktiveren
SLCK = ON 'Clock Initialisieren
pause 1
END SUB
FUNCTION spi(spiodata as byte [3]) 'R/W auf SPI
DEFINE spicount as byte
DEFINE spiidata as byte [4]
DEFINE spiibit as bit [32]
DEFINE spiobit as bit [24] 'letztes Bit aus spiodata [BYTE3]
FOR spicount = 0 to 8
nop(200)
SLCK=0 'Abfallende Flanke des Clocks
nop(100)
SDO = spiobit 'SDO Bit Setzen
spiodata = spiodata shl 1 'Daten vorbereiten
nop(200)
spiidata = spiidata shl 1 'Daten vorbereiten
SLCK=1 'Steigende Flanke des Clocks
nop(100)
spiibit = SDI 'Daten Einlesen
NEXT
RETURN spiidata
END SUB
SUB nop(nop_time as byte) 'Prozessorwartezeit
DEFINE nop_timecounter AS Byte
FOR nop_timecounter = 1 to nop_time)
NEXT
END SUB
[/code]
ich hab keine SPI komponente da um es zu testen!
'//////////////////////////////////////
'
' Basic++
' Controller: C-Control I Unit M2.0
' Station2
' Beschreibung: Ansteuerung einer SPI-Komponente
' Datum: 30.11.07
'
'//////////////////////////////////////
OPTION CC2.0
DEFINE SLCK AS BIT 'später durch PORT ersetzten
DEFINE SDI AS BIT 'später durch PORT ersetzten
DEFINE SDO AS BIT 'später durch PORT ersetzten
DEFINE CS1 AS BIT 'später durch PORT ersetzten
DEFINE data as byte
#main
init_spi() 'SPI INITIALISIERN
spi(12) 'Byte 12 an Bus senden
data = spi(0) 'Byte am Bus lesen
print data 'gelesenes byte ausgeben
END
SUB init_spi() 'SPI Initialisieren
CS1 = ON 'SPI Slave 1 dekativieren
'CSn = OFF 'ggf. weitere Slaves deaktiveren
SLCK = ON 'Clock Initialisieren
pause 1
END SUB
FUNCTION spi(spiodata as byte [3]) 'R/W auf SPI
DEFINE spicount as byte
DEFINE spiidata as byte [4]
DEFINE spiibit as bit [32]
DEFINE spiobit as bit [24] 'letztes Bit aus spiodata [BYTE3]
FOR spicount = 0 to 8
nop(200)
SLCK=0 'Abfallende Flanke des Clocks
nop(100)
SDO = spiobit 'SDO Bit Setzen
spiodata = spiodata shl 1 'Daten vorbereiten
nop(200)
spiidata = spiidata shl 1 'Daten vorbereiten
SLCK=1 'Steigende Flanke des Clocks
nop(100)
spiibit = SDI 'Daten Einlesen
NEXT
RETURN spiidata
END SUB
SUB nop(nop_time as byte) 'Prozessorwartezeit
DEFINE nop_timecounter AS Byte
FOR nop_timecounter = 1 to nop_time)
NEXT
END SUB
[/code]