| ??? 09/08/11 08:54 Read: times |
#183655 - Code Responding to: ???'s previous message |
Sorry but some code was not printed
///////////////////////////////////////////////// ...
while (SW1 == 1){
BYTE save_sfrpage = SFRPAGE;
SFRPAGE = SPI0_PAGE;
NSSMD0 = 0; // Step1.1: Activate Slave Select
SPI0DAT = EEPROM_CMD_WREN; // Step1.2: Send the WREN command
while (!SPIF); // Step1.3: Wait for end of transfer
SPIF = 0; // Step1.4: Clear the SPI intr. flag
NSSMD0 = 1; // Step1.5: Deactivate Slave Select
//Delay_us (1); // Step1.6: Wait for at least
// T_NSS_DISABLE_MIN
// Step2: Send the WRITE command
NSSMD0 = 0;
SPI0DAT = EEPROM_CMD_WRITE;
while (!SPIF);
SPIF = 0;
// Step3: Send the EEPROM destination address (MSB first)
SPI0DAT = (BYTE)((counter >> 8) & 0x00FF);
while (!SPIF);
SPIF = 0;
SPI0DAT = (BYTE)(counter & 0x00FF);
while (!SPIF);
SPIF = 0;
//}
SFRPAGE = save_sfrpage;
for (buf=0; buf<32; buf++) //0-32 as 16bit measurement is splitted to 8bit+8bit
{
EA = 0; // Disable interrupts
// The 12-bit ADC value is averaged across INT_DEC measurements. The result is
// then stored in Result, and is right-justified
// The measured voltage applied to AIN 0.1 is then:
//
// Vref (mV)
// measurement (mV) = --------------- * Result (bits)
// (2^12)-1 (bits)
measurement[buf] = Result * 2430 / 4095;
EA = 1; // Re-enable interrupts
Time0 = ~Time0; // generate clk at output for frequency check
counter2++; // counts # of samples
Delay_ms(100);
x1= measurement[buf]; //low value 8bit
x2= measurement[buf] >> 8 ; //high value 8bit (recalculated with *256)
SFRPAGE = UART1_PAGE;
//printf("n x1:%d x2:%d",x1,x2);
printf("n meas_value:%ld x1:%d x2:%d counter:%ld",measurement[buf],x1,x2,counter);
SFRPAGE = SPI0_PAGE;
SPIF = 0;
NSSMD0 = 0;
SPI0DAT = 166; //perform test (with constant value)
while (!SPIF);
SPIF = 0;
NSSMD0 = 1;
//Delay_us (1);
} //for end
// Step5: Poll on the Write In Progress (WIP) bit in Read Status Register
do
{
NSSMD0 = 0; // Activate Slave Select
SPI0DAT = EEPROM_CMD_RDSR; // Send the Read Status Register command
while (!SPIF); // Wait for the command to be sent out
SPIF = 0;
SPI0DAT = 0; // Dummy write to output serial clock
while (!SPIF); // Wait for the register to be read
SPIF = 0;
NSSMD0 = 1; // Deactivate Slave Select after read
// Delay_us (1);
} while( (SPI0DAT & 0x01) == 0x01 );
SFRPAGE = save_sfrpage;
counter=counter+64; //go to next page
} //while end
|
| Topic | Author | Date |
| 8051F120 SPI EEPROM Page_write | 01/01/70 00:00 | |
| Code | 01/01/70 00:00 | |
| disable printf? | 01/01/70 00:00 | |
| which '51 derivative? | 01/01/70 00:00 | |
| Isn't that obvious? | 01/01/70 00:00 | |
| I keep missing the titles :( | 01/01/70 00:00 | |
| Working (?) | 01/01/70 00:00 | |
| Wow - now that is fast | 01/01/70 00:00 | |
Mhz | 01/01/70 00:00 |



