при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Код: Выделить всё
CLR PC=FFFFFF
RPT
V0=RP
IV0>05
IV0<0A
INF если попали в интервал от 6 до 9 - выполнится команда _INF_ и мы попадем на начало цикла, чтобы снова взять случайный номер пиксела
EI
EI
сюда попадаем только если _V0_ не попала в указанный интервал
PM=V0
PNT
INF
я не совсем понял, зачем вам "не попадать" в промежуток.
Код: Выделить всё
rcv_spi();
SPSR = _BV(SPI2X);
return ty ? 0 : STA_NOINIT;Код: Выделить всё
if(is_dbg_mode()) { SPSR = _BV(SPI2X); return true; }Код: Выделить всё
SPCR = _BV(SPE) | _BV(MSTR) | _BV(CPHA);//fosc/2 16MHz/2
//SPSR = _BV(SPI2X); // думаю здесь можно было бы и SPSR = 0, не знаю что при резете получается, обнуляется этот регистр или нет?
SPSR; SPDR;
enter_sd_mode();Речь идет про эту строчку кодаВАЖНО : инициализация проводится на низко скоростном режиме! Частота клока карты не более 400 кГц!!!
Код: Выделить всё
for (n = 10; n; n--){
rcv_spi(); /* 80 dummy clocks with CS=H */
}Код: Выделить всё
#define SPI_INIT { SPCR = 0x52; SPSR = 0x00; }
#define SPI_HIGHSPEED { SPCR = 0x50; SPSR |= (1<<SPI2X); delay_ms(1); }
/**************************************************************************
* Инициализация карты (эта функция вызывается функцией sd_init) *
**************************************************************************/
static BYTE sd_init_int() {
BYTE i;
/* Сбрасываем SDHC флаг */
sd_sdhc = 0;
/* Минимум 80 пустых тактов */
for(i=20; i; --i)
spi_receive();
/* CMD0 Посылаем команду сброса */
if(sd_sendCommand(GO_IDLE_STATE, 0) != 1) goto abort;
/* CMD8 Узнаем версию карты */
i = 0;
if(sd_sendCommand(SEND_IF_COND, 0x000001AA))
i = 1;
/* CMD41 Ожидание окончания инициализации */
if(sd_check()) goto abort;
/* Только для второй версии карты */
if(i) {
/* CMD58 определение SDHC карты. Ответ обрабатывается в функции sd_sendCommand */
if(sd_sendCommand(READ_OCR, 0) != 0) goto abort;
}
return 0;
abort:
return 1;
}
/**************************************************************************
* Инициализация карты *
**************************************************************************/
BYTE sd_init() {
BYTE tries;
/* Освобождаем CS на всякий случай */
SD_CS_DISABLE
/* Включаем SPI */
SPI_INIT
/* Делаем несколько попыток инициализации */
tries = 10;
while(sd_init_int())
if(--tries == 0) {
lastError = ERR_DISK_ERR;
return 1;
}
/* Вклчюаем максимальную скорость */
SPI_HIGHSPEED
return 0;
}