| ??? 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 | 



