
#<함수형>****************************************************
void _Spi_생성_(unsigned char  *rSpi포트,
               unsigned char   p포트번호,
               unsigned char   pMiso비트번호,
               unsigned char   pMosi비트번호,
               unsigned char   pSck비트번호,
               unsigned char   pCs비트번호,
               unsigned char   pCpha값,
               unsigned char   pCpol값,
               unsigned char   pXsb선택,
               unsigned char   p동작속도);
               
#define  _Spi_Create_    _Spi_생성_

#<인수>
'rSpi포트'
SPI 포트 [생성자](반드시 <unsigned char [10]> 의 배열로 선언해야함).
'p포트번호'
SPI 포트를 생성할 GPIO 포트번호(0 부터 유효).
'pMiso비트번호'
MISO 핀으로 사용할 비트번호(0 - 7).
'pMosi비트번호'
MOSI 핀으로 사용할 비트번호(0 - 7).
'pSck비트번호'
SCK 핀으로 사용할 비트번호(0 - 7).
'pCs비트번호'
CS 핀으로 사용할 비트번호(0 - 7).
'pCpha값'
CPHA 설정값(0 또는 1).
'pCpol값'
CPOL 설정값(0 또는 1).
'pXsb선택'
0 : MSB 우선.
1 : LSB 우선.
'p동작속도'
SPI 포트 동작 속도(0(최고속) - 255(최저속)).

#<반환값>

#***********************************************************

#<적용구분>

"맷돌 전용"

#<선언문서>

"_Spi_생성_.h"

#<설명>

SPI 포트를 생성하고 해당 사용핀을 초기화 합니다.

SPI 포트 [생성자] 는 10 바이트 공간을 가지며 반드시 <unsigned char [10]> 의 
배열로 선언되어야 하며, 반드시 [전역변수] 로 선언되어야 합니다.

SPI 포트는 지정한 GPIO 포트에서 MISO, MOSI, SCK 핀을 지정해야 합니다.

맷돌의 SPI 는 [가상 SPI] 로 그 운영이 대한히 유연성이 있으며 어떤 포트와 핀에도 무한정 생성가능합니다.
또한, <마이크로와이어> 등이나 <MOSI/MISO> 가 하나로 묶여 있는 DS1620(온도 측정 IC) 등을 지원하기 
위하여 별다른 설정이나 외부 추가 IC 없이 <MOSI/MISO> 를 묶어주기만 하면 됩니다.
이 경우 이 묶인 신호선은 I2C 의 SDA 선처럼 동작됩니다.
단, 이 경우는 [전이중 동작] 은 사용할수 없게 됩니다.

74HC595 와 SPI 포트를 연결하여 8비트 출력포트를 무한정 생성할수 있으며, 
74HC165 와 SPI 포트를 연결하여 8비트 입력포트를 무한정 생성할수 있습니다.
이를 위하여 맷돌의 가상 SPI 는 [래치] 용 API 를 지원합니다.
이 기능은 SPI 의 CS 신호선을 래치용 신호선으로 사용할수 있도록 해주며, 0 또는 1 로 두가지 래치를 지원합니다.
74HC595 는 래치(0) 이 의미가 있으며, 74HC165 는 래치(1) 일때 의미가 있습니다.

#<예제>

  //[VAR]
  //{
      //SPI 포트 생성자.
      unsigned char  spi포트[10];
      
  //} 

  // ...
  
  //GPIO포트0 에 MISO(2번 비트), MOSI(1번 비트), SCK(0번 비트), CS(3번 비트) 로,
  //CPHA(1), CPOL(1), MSB 우선, 동작속도는 5 로 하는 SPI 포트를 하나 생성합니다.
  _Spi_생성_(spi포트, 0, 2, 1, 0, 3, 1, 1, 0, 5);
  
  // ... 

  