Добрый день.Пытаюсь записать байт данных в память AT25F4096.Использую CodeVisionAVR+proteus. Вот код:
Код
#include <mega128.h>
#define DDR_SPI DDRB
#define DD_MOSI 2
#define DD_MISO 3
#define DD_SCK 1
#define DD_CS 0
#define DF_CHIP_SELECT 0x01


unsigned int addr=0;
unsigned char temp = 0xC0;

                void main(void){
                    
                                DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK)|(1<<DD_CS);
                                SPCR = (1<<SPE)|(1<<MSTR);
                                
                                PORTB &= ~DF_CHIP_SELECT;   //опускаем чип селект
                                SPDR = 0x06;  //WREN
                                while (!(SPSR & temp));
                                PORTB |= DF_CHIP_SELECT;   //поднимаем чип селект
                                
                                
                                
                                PORTB &= ~DF_CHIP_SELECT;
                                SPDR = 0x02;  //PROGRAM
                                while (!(SPSR & temp));
                                
                                  
                                
                                SPDR = addr>>16;       //толкаем 3 байта адреса
                                while (!(SPSR & temp));
                                SPDR = addr>>8;      
                                while (!(SPSR & temp));
                                SPDR = addr>>0;      
                                while (!(SPSR & temp));  
                                
                                
                                
                                SPDR = 0xAA;             //один байт данных                  
                                while (!(SPSR & temp));
                                
                                
                                PORTB |= DF_CHIP_SELECT;      //поднимаем чип селект
                                
                                                                
                    }

Компилируется без ошибок. Proteus тоже не выдает ошибок, вот только смотрю в память флэши , а там ничего не меняется.
Помогите разобраться,пожалуйста!