Skip to content

Instantly share code, notes, and snippets.

@RozeDoyanawa
Created May 30, 2020 20:36
Show Gist options
  • Save RozeDoyanawa/a14be9400edff8f926a4bb54ec3d24a0 to your computer and use it in GitHub Desktop.
Save RozeDoyanawa/a14be9400edff8f926a4bb54ec3d24a0 to your computer and use it in GitHub Desktop.
void doTransfer(void){
unsigned char byte;
int i;
SPI1TCNTH = 0;
SPI1TCNTL = 4;
transferMode = 1;
SPI1TXBbits.TXB = 0;
while(PIR2bits.SPI1TXIF == 0);
SPI1TXBbits.TXB = 0;
while(PIR2bits.SPI1TXIF == 0);
SPI1TXBbits.TXB = 0;
while(PIR2bits.SPI1TXIF == 0);
SPI1TXBbits.TXB = 0;
while(PIR2bits.SPI1TXIF == 0);
SPI1INTFbits.TCZIF = false;
for(i = 0; i < pixelCount; i++){
signed int toTransfer = (transferOffset + transfered) % pixelCount;
SPI1TCNTL+= 4;
SPI1TXBbits.TXB = 0b11100000 | transferBuffer[toTransfer].A;
while(PIR2bits.SPI1TXIF == 0);
SPI1TXBbits.TXB = transferBuffer[toTransfer].B;
while(PIR2bits.SPI1TXIF == 0);
SPI1TXBbits.TXB = transferBuffer[toTransfer].G;
while(PIR2bits.SPI1TXIF == 0);
SPI1TXBbits.TXB = transferBuffer[toTransfer].R;
while(PIR2bits.SPI1TXIF == 0);
transfered++;
}
transfered = 0;
transferMode = 3;
for(i = 0; i < pixelCount; i++){
SPI1TCNTL+= 4;
SPI1TXBbits.TXB = 0;
while(PIR2bits.SPI1TXIF == 0);
SPI1TXBbits.TXB = 0;
while(PIR2bits.SPI1TXIF == 0);
SPI1TXBbits.TXB = 0;
while(PIR2bits.SPI1TXIF == 0);
SPI1TXBbits.TXB = 0;
while(PIR2bits.SPI1TXIF == 0);
transfered++;
}
transferMode = 0;
}
static void initSPI(void){
SPI1INTF = 0;
SPI1INTE = 0;
SPI1INTEbits.TCZIE = 1;
SPI1CON0 = 0;
SPI1CON0bits.BMODE = 1;
SPI1CON0bits.MST = 1;
SPI1CON0bits.LSBF = 0;
SPI1CON1bits.SMP = 0;
SPI1CON1bits.CKE = 1;
SPI1CON1bits.CKP = 0;
SPI1CON1bits.FST = 0;
SPI1CON1bits.SSP = 0;
SPI1CON1bits.SDIP = 0;
SPI1CON1bits.SDOP = 0;
SPI1CON2bits.BUSY = 0;
SPI1CON2bits.SSFLT = 0;
SPI1CON2bits.SSET = 0;
SPI1CON2bits.TXR = 1;
SPI1CON2bits.RXR = 0;
SPI1TWIDTHbits.TWIDTH = 0;
SPI1CLK = 0b00000000;
SPI1BAUD = 10;
SPI1CON0bits.EN = 1;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment