реклама на сайте
подробности

 
 
> CRC16
ilian
сообщение Aug 16 2007, 17:02
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 17-01-05
Пользователь №: 1 997



Привет,
У меня такая задача.
Нужно работает по RS-485 , RF наводки по кабелем болшие.
PC мастер и управляет 6 MSP430.Сейчас у меня протокол простой и нет CRC.
Если кто нибутъ может предложит хорошии протокол и литература для CRC-16.
Спосиба.

Илиян
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VAI
сообщение Aug 17 2007, 06:28
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Цитата
Небольшое дополнение к сказанному VAI: его программулину пихаем не в MSP, а в PC, вычисляем массив констант и уже эти константы пихаем в MSP. Так быстрее будет.

Пихаем и в MSP и в РС. А съэкономленные микросекунды, по сравнению со временем передачи....
P.S.
Не забыть, что в IAR для MSP по умолчанию - выравниванивание по словам, т.е. по 2 байта. Надо в PC установить такое-же при описании принимаемых данных. Надежнее один и тот-же файл применять и в PC и в MSP...
Пример:
Код
/* -------------------------------------------------------------------------------------------------------- **
*  Директива "#pragma pack()" работает одинакого в "MSP430 IAR C/EC++ Compiler" и "Borland C++Builder" и "VC"
* -------------------------------------------------------------------------------------------------------- */
#pragma pack( 2 )     // выравнивание по 2-м байтам, в MSP дает оптимальный код

typedef struct
{ short reset_status;
  volatile unsigned short t_tick;       // при измерении температуры делает ++
  signed char       term_f;  
  signed char       term_q;
  signed char       term_m;
} termometer;

typedef struct
{ double            ratio;
  double            Zero;
} predesign;

typedef struct            
{ float             gse[gse_cnt];
  predesign         pre_gse[ch_cnt];
  struct
  { short delta;                
    float Paskal;              
  } pressure;
  float             mabda;
  unsigned short    axue;
  unsigned long     tick_ms;работы прибора
  termometer        term_data;
} TM2_result;
#pragma pack()                          // выравнивание по умолчанию


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
ilian
сообщение Aug 17 2007, 06:36
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 17-01-05
Пользователь №: 1 997



Цитата(VAI @ Aug 17 2007, 09:28) *
Пихаем и в MSP и в РС. А съэкономленные микросекунды, по сравнению со временем передачи....
P.S.
Не забыть, что в IAR для MSP по умолчанию - выравниванивание по словам, т.е. по 2 байта. Надо в PC установить такое-же при описании принимаемых данных. Надежнее один и тот-же файл применять и в PC и в MSP...
Пример:
Код
/* -------------------------------------------------------------------------------------------------------- **
*  Директива "#pragma pack()" работает одинакого в "MSP430 IAR C/EC++ Compiler" и "Borland C++Builder" и "VC"
* -------------------------------------------------------------------------------------------------------- */
#pragma pack( 2 )     // выравнивание по 2-м байтам, в MSP дает оптимальный код

typedef struct
{ short reset_status;
  volatile unsigned short t_tick;       // при измерении температуры делает ++
  signed char       term_f;  
  signed char       term_q;
  signed char       term_m;
} termometer;

typedef struct
{ double            ratio;
  double            Zero;
} predesign;

typedef struct            
{ float             gse[gse_cnt];
  predesign         pre_gse[ch_cnt];
  struct
  { short delta;                
    float Paskal;              
  } pressure;
  float             mabda;
  unsigned short    axue;
  unsigned long     tick_ms;работы прибора
  termometer        term_data;
} TM2_result;
#pragma pack()                          // выравнивание по умолчанию

Спосиба!
Ето будет помочъ мне.
Я на асемблер буду написатъ.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 02:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01588 секунд с 7
ELECTRONIX ©2004-2016