| Proteus, KiCAD и другие ECAD Разработчик так или иначе сталкивается с системами автоматизированного проектирования. Данный раздел - по САПР. |
Подскажите микросхему памяти
21.02.2011, 00:50
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Подскажите микросхему памяти
Сообщение от Easyrider83
|
|
А почему не float?
|
Тогда уж Double. Чтоб не скромничать...
|
|
|
|
21.02.2011, 00:50
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: Подскажите микросхему памяти
Сообщение от Easyrider83
|
А почему не float?
|
Потому что!
|
|
|
|
21.02.2011, 01:02
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Подскажите микросхему памяти
Тогда примерно так. Пишу на АСМе, поэтому сдвиг влево может быть написан неправильно, но тут уж подправят...
|
Код:
|
void main(void)
{
init();
static bank2 int map[1024];
for(int i=0;i‹=SIZE-1;i++)
{
for(int j=0;j‹=7;j++)
{
DelayMs(200);
if (RB0 == 1)
{
map[i]==((map[i]‹‹1)++1);
}
else
{
map[i]==(map[i]‹‹1);
}
}
}
while(1)
{
}
} |
Подправил...
Последний раз редактировалось omercury; 21.02.2011 в 01:34.
|
|
|
|
Сказали "Спасибо" omercury
|
|
|
21.02.2011, 01:20
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: Подскажите микросхему памяти
Сообщение от omercury
|
Тогда примерно так. Пишу на АСМе, поэтому сдвиг влево может быть написан неправильно, но тут уж подправят...
|
Код:
|
void main(void)
{
init();
static bank2 int map[1024];
for(int i=0;i‹=SIZE-1;i++)
{
for(int j=0;j‹=7;j++)
{
DelayMs(200);
if (RB0 == 1)
{
map[i]==((map[i]+1)‹‹1);
}
else
{
map[i]==(map[i]‹‹1);
}
}
}
while(1)
{
}
} |
|
Чёто смысл не уловлю?
|
|
|
|
21.02.2011, 01:21
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Подскажите микросхему памяти
Сообщение от george carpenter
|
|
Чёто смысл не уловлю?
|
Во вложенном цикле как раз собирается 8 бит в байт.
Порту, возможно, придётся задать свойство volatile.
Косячок подправил...
|
Код:
|
map[i]==((map[i]‹‹1)++1); |
Последний раз редактировалось omercury; 21.02.2011 в 01:35.
|
|
|
|
21.02.2011, 01:39
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: Подскажите микросхему памяти
Можно еще просто вот таким образом писать чётко биты.
|
PHP код:
|
#define SETBIT(x,i) x[i››3]|=(1‹‹(i&7));#define CLEARBIT(x,i) x[i››3]&=(1‹‹(i&7))^0xFF;
|
Это для восьми бит, если используется байтовый тип данных, если использовать например int, то можно переделать, только не разберусь до конца как. &15 - это понятно а вот сдвиг на сколько разрядов.
Последний раз редактировалось george carpenter; 21.02.2011 в 01:41.
|
|
|
|
21.02.2011, 01:49
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: Подскажите микросхему памяти
Профиксил для int
|
PHP код:
|
#define SETBIT(x,i) x[i››4]|=(1‹‹(i&15)); #define CLEARBIT(x,i) x[i››4]&=(1‹‹(i&15))^0xFFFF;
|
Теперь уже можно сохранить 16 384 бита всё в том же массиве.
А максимум таким образом сохранить примерно ~30 400 бит, что не плохо!
Последний раз редактировалось george carpenter; 21.02.2011 в 01:56.
|
|
|
|
21.02.2011, 03:00
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: Подскажите микросхему памяти
Сообщение от omercury
|
|
Я, возможно не в своё дело лезу, но для того, чтобы сохранить 8192 бит/8=1024 байт недостаточно 3986 байт? ЯВУ Си, конечно, своеобразен, но не до такой же степени!
|
Я всё время догадывался, что байт на АСМ в восемь раз ширше (или ширее?), чем байт в СИ. Ну что поделать? Приходится мириться с этим!

Пост #27:
|
Цитата:
|
|
Автор ничего не путает, если глянуть в код, то поймете почему я так сказал, потому как для хранения 1го бита выделяется один элемент массива типа char = 1 байт.
|
И в проге он пытался организовать массив в 8192 байт при 3986 реальных.
Получится у вас на АСМе?
|
|
|
|
21.02.2011, 10:47
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Подскажите микросхему памяти
Сообщение от st_1
|
|
Я всё время догадывался, что байт на АСМ в восемь раз ширше (или ширее?), чем байт в СИ.
|
Что поделать? Издержки скорости разработки...
Сообщение от st_1
|
И в проге он пытался организовать массив в 8192 байт при 3986 реальных.
Получится у вас на АСМе?
|
Ни на чём не получится, если делать неправильно.
Достаточно было просто подсказать, как довести Сишную ширину байта до Ассемблерной.
Последний раз редактировалось omercury; 21.02.2011 в 10:55.
|
|
|
|
21.02.2011, 10:59
|
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: Подскажите микросхему памяти
Вот теперь XoDoK11, уже буду мучатся с задержкой, только подбирать видимо буду методом тыка  схема генерации этих битов есть в Протеусе но какая там задержка не знаю, может посчитаю
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:51.
|
|