▲PasocomMiniとラズパイ3をつないで、プログラム(テキストファイル)を送信したり、受信できるようにしてみました。
特に名前が無くて、いまのところ「SPI通信プログラム」と呼んでます。
以下がPasocomMini側の通信プログラムです。
'PASOCOM-MINI SPI THUUSHIN PROGRAM BY TAKUYA MATSUBARA '(MASTER)19PIN MOSI(OUT) --> (SLAVE)37PIN(IN) '(MASTER)21PIN MISO(IN) <-- (SLAVE)35PIN(OUT) '(MASTER)23PIN SCLK(OUT) --> (SLAVE)33PIN(IN) '(MASTER)24PIN CE0(OUT) --> (SLAVE)31PIN(IN) ACLS DIM BUF%[256] CLKRATE=4800 TIMING=0 '0:CPOL=0,CPHA=0 : RISING EDGE=SAMPLE,FALLING=RELOAD '1:CPOL=0,CPHA=1 '2:CPOL=1,CPHA=0 '3:CPOL=1,CPHA=1 SPISTART CLKRATE,TIMING WHILE 1 COLOR #RED PRINT "" PRINT "PASOCOM-MINI SPI THUUSHIN PROGRAM BY TAKUYA MASTUBARA" COLOR #WHITE INPUT "COMMAND 1:IMPORT/2:EXPORT/3:TEST/4:END>";A IF A==1 THEN GOSUB @S2M IF A==2 THEN GOSUB @M2S IF A==3 THEN GOSUB @TEST IF A==4 THEN BREAK WEND BUF%[0]=ASC("E") SPISEND BUF%,1 SPISTOP END '---- @TEST BUF%[0]=ASC("T") SPISEND BUF%,1 RETURN '---- @S2M COLOR #YELLOW BUF%[0]=ASC("R") SPISEND BUF%,1 T$="" EOF=0 WHILE EOF==0 WAIT 10 SSIZE=256 FOR I=0 TO SSIZE-1 BUF%[I]=0 NEXT SPIRECV BUF%,SSIZE FOR I=0 TO SSIZE-1 STEP 2 C = BUF%[I+0] + (BUF%[I+1] * &H100) PRINT CHR$(C); T$ = T$+CHR$(C) NEXT FOR I=0 TO SSIZE-1 STEP 2 IF (BUF%[I]==0) AND (BUF%[I+1]==0) THEN EOF=1 NEXT WEND PRINT COLOR #WHITE INPUT "INPUT SAVE FILE> TXT:";F$ SAVE "TXT:"+F$,T$ RETURN '----- @M2S INPUT "INPUT LOAD FILE> TXT:";F$ BUF%[0]=ASC("W") SPISEND BUF%,1 WAIT 30 LOAD "TXT:"+F$ OUT T$ COLOR #YELLOW TOTAL = LEN(T$)*2 PTR=0 WHILE TOTAL>0 SSIZE = TOTAL IF SSIZE>=256 THEN SSIZE=256 FOR I=0 TO SSIZE-1 STEP 2 C=ASC(MID$(T$,PTR,1)) PRINT CHR$(C); PTR=PTR+1 BUF%[I+0] = C AND &HFF BUF%[I+1] = (C >> 8) AND &HFF NEXT SPISEND BUF%,SSIZE TOTAL =TOTAL-SSIZE WAIT 30 WEND COLOR #WHITE RETURN
くわしい説明とラズパイ側のプログラムはこちらで公開中です。
https://sites.google.com/site/yugenkaisyanico/pasocommini