[an error occurred while processing this directive]
странности при работе с DS1996 на PC через драйвер TMEX
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 3m 10 октября 2005 г. 20:32

Пишу софтину для работы с DS1996 для писюка.
Использую далласовский драйвер TMEX и даллосовский же адаптер DS9097U.

Странно работает запись в Scratchpad DS1996: выдается end offset на 3-4 байта меньше, чем было выдано данных, хотя при чтении видно, что данные в Scratchpad записались верно.
Пробовал обращаться и по одному байту и с блочным обменом.
Пример тестовой программы:


...
unsigned short Tmpa, Temp2;
unsigned short Tsz;
u8 CmBuf[5+32];
const u8 CmWrScp[2]={ 0xcc, 0x0f };
const u8 CmRdScp[2]={ 0xcc, 0xaa };
const u8 CmCpScp[2]={ 0xcc, 0x55 };

/* проверяем наличие DS1996 */
Result = TMStrongAccess(SessionHandle, StateBuffer);
if (Result !=1)
return false; /* ds1996 не обнаружена */
Result = TMTouchReset(SessionHandle);
if (Result !=1)
return false;

/* пишем */
memcpy((void *)CmBuf, (void *)CmWrScp, 2);
CmBuf[2]=*Addr & 255;
CmBuf[3]=(*Addr >> 8) & 255;
Tsz=16; // количество записываемых байт

/* формируем тестовую последовательность */
for (Temp2=0; Temp2 < 32; Temp2++)
{
CmBuf[4+Temp2]=Temp2+0x10;
}
// выдаем
Tmpa=TMBlockIO(SessionHandle, CmBuf,4+Tsz);
if (Tmpa <0)
{
*LogWindow << "\nerror!";
}

/* сброс ds1996 */
Result = TMTouchReset(SessionHandle);
if (Result !=1)
return false;

memset((void *)CmBuf, 255, 5+32); // очистка приемника
memcpy((void *)CmBuf, (void *)CmRdScp, 2);
CmBuf[2]=*Addr & 255;
CmBuf[3]=(*Addr >> 8) & 255;
Tmpa=TMBlockIO(SessionHandle, CmBuf, 5+Tsz);
if (CmBuf[4] != Tsz)
return false;
...


One Wire Viever работает четко через тот же адаптер.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru