Hello everybody, .i'm looking for a code to have spi communication between aduc841 and maxq3183 for my project.i've got some code from internet but nothing is working right for me. one is : #pragma DEBUG OBJECTEXTEND CODE // pragma lines can contain state C51 #include <stdio.h> // declarations for I/O functions #include <ctype.h> #include <ADuC841.h> // ADuC841 predefined symbols
sbit ss = P1^5; // Chip select for maxq3183 (PORT1.5) /******************************************************* Initialize the ADuC841 resouces being used in this sample *******************************************************/ void initmaxq3183(void) { SPICON = 0x2A; } void init841(void) // Initialize internal peripherals { /* Initialize SPI to talk to maxq3183 */ CFG841 = 0x10; // Serial interface enable for P3.5..P3.7 pins SPICON = 0x3A; // Enable SPI I/F as master, SCLOCK idle H, // advance MSB output, sclock=fcore/8 }
/******************************************************* This function transmittes a byte data on the SPI interface *******************************************************/
void spiTx(unsigned char txDat) // Transmit a byte data over the SPI { ISPI = 0; // Clear ISPI bit SPIDAT = txDat; while(!ISPI); // Wait until tx complete ISPI=0; } void spiTxslave(unsigned char txDatslave) { ISPI =0; SPIDAT=txDatslave; while(!ISPI); ISPi=0; CPHA=1; }
void main() {
init841(); while(1) { spiTx(0x15); //for checking spiTx(0x12); }
initmaxq3183(); spiTxslave(0x15); // for checking spiTxslave(0x12);
}
i was not getting data on SPIDAT reg. also, after checking the signals on miso, it was not coming. need a help form anyone.
You need t
You should consider that during spi communiaction you are providing exact amount of bits during frame sending to master.
MISO is the last thing you need to check. Before you even look at MISO, you have to check that CLK and CS work as needed. Next, unless your slave device doesn't need it at all, you have to check MOSI. Only if all that is exactly as it's needed does it even make sense to look at the MISO line.
That set aside, how did you expect your code to ever reach your initmaxq3183 function?
After 10 years, I rather doubt any one was really waiting for that.
And the linked site is very poorly written, with some glaring mistakes!