Propeller with SPI for NRF24L01
samurai
Posts: 2
I use propeller with NRF24L01 but i don't know about SPI for configure module NRF24L01
Can I should
or
Post Edited (samurai) : 4/22/2010 11:40:01 AM GMT
Can I should
PUB SpiReadWrite(byte_out) : byte_in | bit {{ SPI read-write procedure (8-bit SPI mode 0) Read and write are synced, i.e. for each byte in it is one byte out For deatails see: [url=http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus]http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus[/url] }} byte_in := byte_out repeat bit from 0 to 7 'Write MOSI on trailing edge of previous clock if (byte_in & $80) High(SPI_Mosi) else Low(SPI_Mosi) byte_in <<= 1 'Half a clock cycle before leading/rising edge TIME.PauseUSec(1) High(SPI_Sck) 'Half a clock cycle before trailing/falling edge TIME.PauseUSec(1) 'Read MISO on trailing edge byte_in |= Read(SPI_Miso) Low(SPI_Sck) return byte_in
or
PUB SHIFTOUT(Dpin, Cpin, Mode, Bits, Value) dira[noparse][[/noparse]Dpin]~~ ' make Data pin output outa[noparse][[/noparse]Cpin] := ClockState ' set initial clock state dira[noparse][[/noparse]Cpin]~~ ' make Clock pin output if Mode == 4 'LSBFIRST Value <-= 1 ' pre-align lsb repeat Bits outa[noparse][[/noparse]Dpin] := (Value ->= 1) & 1 ' output data bit PostClock(Cpin) if Mode == 5 'MSBFIRST Value <<= (32 - Bits) ' pre-align msb repeat Bits outa[noparse][[/noparse]Dpin] := (Value <-= 1) & 1 ' output data bit PostClock(Cpin) PUB SHIFTIN(Dpin, Cpin, Mode, Bits)|Value dira[noparse][[/noparse]Dpin]~ ' make dpin input outa[noparse][[/noparse]Cpin] := ClockState ' set initial clock state dira[noparse][[/noparse]Cpin]~~ ' make cpin output Value~ ' clear output if Mode == 0 'MSBPRE repeat Bits value := (Value << 1) | ina[noparse][[/noparse]Dpin] PostClock(Cpin) if Mode == 1 'LSBPRE repeat Bits +1 Value := (Value >> 1) | (ina[noparse][[/noparse]Dpin] << 31) PostClock(Cpin) value >>= (32 - Bits) if Mode == 2 'MSBPOST repeat Bits PreClock(Cpin) Value := (Value << 1) | ina[noparse][[/noparse]Dpin] if Mode == 3 'LSBPOST repeat Bits + 1 PreClock(Cpin) Value := (Value >> 1) | (ina[noparse][[/noparse]Dpin] << 31) Value >>= (32 - Bits) return Value
Post Edited (samurai) : 4/22/2010 11:40:01 AM GMT
Comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Leon Heller
Amateur radio callsign: G1HSM