Пытался использовать Flash память ПЛК для хранения базовых настроек (коэффициенты калибровки датчиков, режим работы и т.д.), однако что то не работает, на этапе выполнения комманды EraseSector ПЛК уходит в размышления и из него больше не выходит.
Вообще можно как то сохранять/читать данные с использованием энергонезависимой памяти ADAM-а или все же проще и надежнее юзать внешную память (например через ModBUS).
Вызов NMI во время EraseSector() вызывает общий сбой (если WDT заведен перемычкой на NMI)
WDT_clear(); // предотвращение вызова NMI
if(EraseSector(SEG))printf("Ok. ");
или использовать запись в файл (FFS)
FILE *fs;
fs=fopen(FileName,"w+b");
int c=fwrite(record,len,1,fs);
и fread(rec,len,1,fs);
Правда замечаю нестабильность работы с большими файлами (>100k)
Пробывал запустить следующую программу ( в связи с инструкцией и вышеприведенными советами):
for (i=0;i<32768;i++) *(data+i) = 0x55; ProgramSector(0x80000, &data); for (i=0; i<10;i++) adv_printf("read %d\n", read_mem(0x8000,0x0000+i)); }
Программа тупо зависает на команде EraseSector. Может я что то не так делаю?
Попытки записи в файл вызвали сообщение об ошибке, Null Pointer
ИМХО все так, может попробовать другое железо, другие версии *.LIB, другую модель памяти.
Блин пробую подключить другую библиотеку, например *L.LIB, ставлю в компиляторе MODEL=LARGE, и он мне выдает дохрена ошибок, может я опять что то не то делаю????
да научился подключать разные модели памяти, результат вообще плачевынй, он уходит в мир иной сразу же после запуска. Видно идею с использованием энергонезависимой памяти придется забыть.
При смене модели памяти в BC необходим Compile\Build All
Я использую Small (UtylityS.lib), Instr Set 80186
Я понимаю что BildAll, я тоже юзаю Small, вроде как все работает, тока вот с Flash ни в какую, думаю бысрей всего с контроллером что-то, но пока проблема наблюдается на двух (остальные еще не пришли еще).
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме