Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// INIT
- OpenSPI2( FRAME_ENABLE_OFF | ENABLE_SDO_PIN | SPI_MODE8_ON | SPI_SMP_OFF | SPI_CKE_ON | SLAVE_ENABLE_OFF |
- CLK_POL_ACTIVE_HIGH | MASTER_ENABLE_ON | SEC_PRESCAL_3_1 | PRI_PRESCAL_16_1, SPI_ENABLE ); // Configurazione periferica SPI interna
- ///////////////////////////////////////////
- /// LOOP
- int result;
- // GoMAX1149() ;
- mPORTGClearBits(BIT_9); // Metto CS a zero
- ReadSPI2(); // Svuoto buffer
- putcSPI2(0b10001110); // Scrivo byte di controllo
- while (mPORTAReadBits(BIT_2)!=00); // Attendo che il piedino di SSTRB vada a 0 (conversione iniziata)
- while (mPORTAReadBits(BIT_2)==00); // Attendo che il piedino di SSTRB vada a 1 (conversione finita)
- ReadSPI2(); // Svuoto buffer, qui è assolutamente obbligatorio sennò il buffer è pieno con
- // i dati ricevuti dalla precedente scrittura e si blocca tutto!!!
- putcSPI2(0b00000000); // Invio dati fittizi per muovere il Clock
- result=getcSPI2(); // Leggo il byte più significativo
- putcSPI2(0b00000000); // Per due volte
- result=result<<8; // Compongo il risultato bit a bit
- result|=getcSPI2();
- mPORTGSetBits(BIT_9); // Metto CS a uno
- /*
- FORMATO DATI DI USCITA
- PRIMO BYTE
- 0 0 d13 d12 d11 d10 d9 d8
- SECONDO BYTE
- d7 d6 d5 d4 d3 d2 d1 d0
- Quindi messo tutto in un INT (PRIMO BYTE<<8+SECONDO BYTE)
- */
Add Comment
Please, Sign In to add comment