Добрый день.Пытаюсь записать байт данных в память 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 тоже не выдает ошибок, вот только смотрю в память флэши , а там ничего не меняется.
Помогите разобраться,пожалуйста!