@@ -45,6 +45,8 @@ pub null()
45
45
46
46
47
47
pub start(sdipin, sdopin, sckpin, khz) : result | m, x
48
+ pub start(sdipin, sdopin, sckpin, khz, cpha) : result | m, x
49
+ pub start(sdipin, sdopin, sckpin, khz, cpha, cpol) : result | m, x
48
50
49
51
'' Configure P2 smart pins for SPI coms
50
52
'' -- sdipin is input from external device (-1 if not used)
@@ -69,6 +71,7 @@ pub start(sdipin, sdopin, sckpin, khz) : result | m, x
69
71
if (sdo >= 0)
70
72
m := P_OE | P_SYNC_TX ' spi tx mode
71
73
m |= ((sck-sdo) & %111) << 24 ' add SCK offset (B pin)
74
+ m |= cpha << 27 ' set clock phase
72
75
x := %1_00000 | (8-1) ' start/stop mode, 8 bits
73
76
pinstart(sdo, m, x, 0) ' configure smart pin
74
77
pinf(sdo) ' disable until used
@@ -77,6 +80,7 @@ pub start(sdipin, sdopin, sckpin, khz) : result | m, x
77
80
x.word[0] := 2 #> (clkfreq / (khz*1000)) <# $FFFF ' ticks in period
78
81
x.word[1] := x.word[0] >> 1 ' ticks in low cycle (50%)
79
82
pinstart(sck, m, x, 0) ' configure smart pin
83
+ m |= cpol << 14 ' set clock polarity
80
84
81
85
setup := true
82
86
0 commit comments