Заметки электроника
Простое - надёжнее!
Меню
  • Главная
  • Погода
  • Заметки
  • Календарь
  • Фотогалерея
  • Песни
  • Чтиво
  • Программы
  • Скачать
  • Связь и ссылки
  • Чехия
  • Lavka

Живёшь в Чехии?

8 битная checksum ccTalk

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Программирование
Создано: 15 февраля 2017
Обновлено: 15 февраля 2017
Просмотров: 3517

Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна

If you send a message to a ccTalk peripheral with an incorrect checksum then it will not reply. The 8-bit checksum is calculated by adding up all the message bytes from the destination address to the last data byte and finding the value when added to it will produce zero in modulo 256 arithmetic. For example, the ccTalk command to enable all coin inhibits is…

[ 2 ] [ 2 ] [ 1 ] [ 231 ] [ 255 ] [ 255 ] [ checksum ] 2 + 2 + 1 + 231 + 255 + 255 = 746 = 234 modulo 256 ( = 256 x 2 + 234 ).

Checksum = 256 - 234 = 22

Therefore the complete message is

[ 2 ] [ 2 ] [ 1 ] [ 231 ] [ 255 ] [ 255 ] [ 22 ] 2 + 2 + 1 + 231 + 255 + 255 + 22 = 768 = ZERO modulo 256 ( = 256 x 3 + 0 ).

------------------------------------------------------------------------------------------------------------------------------------------

Случай же 16 битной контрольной суммы:

If you send a message to a ccTalk peripheral with an incorrect checksum then it will not reply. A 16-bit CRC may used in ccTalk, positioned in the message packet as follows…

[ Dest. Addr. ] [ Size ] [ CRC-16 LSB ] [ Header ] [ Data 1 ]… [ Data N ] [ CRC-16 MSB ]

The ccTalk protocol uses the following parameters…

• CRC-CCITT

• Polynomial = x^16 + x^12 + x^5 + 1

• Initial crc register = 0x0000

It is necessary to have some programming experience as calculating it by hand is no fun. A simple poll would have the following CRC data…

TX : [ 40 ] [ 0 ] [ a ] [ 254 ] [ b ] a = 182 b = 33

RX : [ 1 ] [ 0 ] [ a ] [ 0 ] [ b ] a = 48 b = 55

.............

void generate_crc_lookup_CCITT_A( void )
{
int i;
BYTE z = 0;
for ( i = 0; i < 256; ++i )
crc_lookup_table_CCITT_A[ i ] = calculate_crc_loop_CCITT_A( 1, &z, i << 8 );
}

 

WORD calculate_crc_lookup_CCITT_A( int l, BYTE *p, WORD seed )
{
int i;
WORD crc = seed;
for ( i = 0; i < l; ++i )
crc = ( crc << 8 ) ^ crc_lookup_table_CCITT_A[ ( crc >> 8 ) ^ p[ i ] ];
return crc;
}

const unsigned short crc_ccitt_lookup[] =
{
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,
0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,
0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,
0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,
0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,
0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,
0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,
0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,
0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,
0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,
0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,
0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,
0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,
0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,
0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,
0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,
0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,
0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,
0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,
0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,
0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,
0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,
0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,
0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,
0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,
0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,
0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,
0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
};

 

 

Двунаправленный преобразователь

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Электроника / cхемотехника
Создано: 14 февраля 2017
Обновлено: 14 февраля 2017
Просмотров: 2794
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

bidirection shift

bidirection transfer2

 

You Are Lost In The World Like Me

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Песни
Категория: Песни настроения, демотивация
Создано: 13 февраля 2017
Обновлено: 13 февраля 2017
Просмотров: 1591
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

8 февраля 2017. Центральный регион. Игра на понижение

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Погода
Категория: Альтернативная погода от wow-only.ru
Создано: 08 февраля 2017
Обновлено: 08 февраля 2017
Просмотров: 2179
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Атмосверное давление, достигнув апогея, начало снижаться. Ожидаем потепления.

08 02 17p

English: где послушать англоязычные станции

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: English
Создано: 07 февраля 2017
Обновлено: 07 февраля 2017
Просмотров: 2492
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

http://www.listenlive.eu/uk.html
Обратите особое внимание на столбец "Listen live" с сылками на поток like this:

http://www.listenlive.eu/bbcradio4.m3u

 

  1. Защита сигнальной линии от помех
  2. Пример парсера в коллекцию № 1
  3. Перевести текст юникод (unicode decoder)
  4. IAR 7.80.4 is avaliable

Страница 137 из 197

  • 132
  • 133
  • 134
  • ...
  • 136
  • 137
  • 138
  • 139
  • ...
  • 141

Back to Top

© 2026 Заметки электроника

Top.Mail.Ru