Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Код: Выделить всё
<!DOCTYPE html>
<html>
<head>
<title>crc</title>
<h2>Расчёт crc:</h2>
</head>
<body>
<script>
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////TX_int:
var TX_int = [
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
var xTX = 0; // счёт xTX
var TX_len = 12; // TX_len
var String;
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////crcTX:
var crcTX = 0; var bcrcTX = 0; var aTX = 0; var bTX = 0;
function fcrcTX(){
crcTX = 0xFFFFFFFF;
for (bTX=0; bTX<(TX_len-4); bTX=bTX+4) {
bcrcTX=TX_int[bTX];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+1];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+2];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+3];
crcTX ^= bcrcTX;
for( aTX = 0; aTX < 32; aTX++ ){
if ((crcTX & 0x80000000) != 0){crcTX = (crcTX << 1) ^ 0x04C11DB7;}//Eth.
else {crcTX = (crcTX << 1);};
};
};
TX_int[TX_len-4] = ((crcTX>>24) & 0xFF);// crc
TX_int[TX_len-3] = ((crcTX>>16) & 0xFF);// crc
TX_int[TX_len-2] = ((crcTX>>8) & 0xFF); // crc
TX_int[TX_len-1] = ((crcTX) & 0xFF); // crc
};
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////CheckSum:
/*
function DoCheckSum( uint8_t *Buf, uint16_t Size ){
// Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
};
*/
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////наверное, можно немного упростить:
/*
public static ushort DoCheckSum(byte[] Buf, ushort Size)
{
ushort Cnt = 0, Tmp1 = 0, Tmp2 = 0;
if (Size == 0) { return 0; }
while (Cnt < Size)
{
// Tmp1
Tmp1 += Buf[Cnt++];
if (Tmp1 > 0x00FE) {
Tmp1 += 0xFF01;
}
// Sum
Tmp2 += Tmp1;
if (Tmp2 > 0x00FE) {
Tmp2 += 0xFF01;
}
}
// Финализация
Tmp2 += Tmp1;
if (Tmp2 > 0x00FE) {
Tmp2 += 0xFF01;
}
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2;
if (Tmp1 > 0x00FE) {
Tmp1 += 0xFF01;
}
Tmp1 ^= 0x00FF;
return (ushort)((Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00));
}
*/
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////HEX(int)> LCD(String):
var bi = 0;
function LCD_HEX(bi) {
///////////////////
bi &= 0xFF;
var z = 0;
var HEX = "";
///////////////////
z=0; while (bi>15) {z++; bi=bi-16;};
if (z==0) {HEX = "0";} if (z==1) {HEX = "1";} if (z==2) {HEX = "2";} if (z==3) {HEX = "3";}
if (z==4) {HEX = "4";} if (z==5) {HEX = "5";} if (z==6) {HEX = "6";} if (z==7) {HEX = "7";}
if (z==8) {HEX = "8";} if (z==9) {HEX = "9";} if (z==10) {HEX = "A";} if (z==11) {HEX = "B";}
if (z==12) {HEX = "C";} if (z==13) {HEX = "D";} if (z==14) {HEX = "E";} if (z==15) {HEX = "F";}
///////////////////
z=0; while (bi>0) {z++; bi=bi-1;};
if (z==0) {HEX += "0";} if (z==1) {HEX += "1";} if (z==2) {HEX += "2";} if (z==3) {HEX += "3";}
if (z==4) {HEX += "4";} if (z==5) {HEX += "5";} if (z==6) {HEX += "6";} if (z==7) {HEX += "7";}
if (z==8) {HEX += "8";} if (z==9) {HEX += "9";} if (z==10) {HEX += "A";} if (z==11) {HEX += "B";}
if (z==12) {HEX += "C";} if (z==13) {HEX += "D";} if (z==14) {HEX += "E";} if (z==15) {HEX += "F";}
///////////////////
HEX += " ";
return HEX; //String
}
////////////////////////////////////////////////////////////////////////////////
</script>
<!-----------------------------label------------------------------------------->
<div id='label'
style='position: absolute; left: 10px; top: 100px; width: 970px; height: 0px;
font-size: 30px; color: #000000; background: #1CD3A2;'>crc:</div>
<script>var label = document.getElementById('label');</script>
<!-----------------------------Button------------------------------------------>
<input id='button' type='button' value='нажми меня ))' onClick='Button();'
style='position: absolute; left: 10px; top: 300px; width: 500px; height: 80px;
font-size: 50px; border: 4px solid maroon; background: #00FF00;'>
<script>
function Button() {
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////DoCheckSum:
//DoCheckSum();
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////crc:
fcrcTX();
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////LCD:
String = "crc: ";
for (xTX=0; xTX<TX_len; xTX++) {
String += LCD_HEX(TX_int[xTX]);
};
label.innerHTML = String;
TX_int[0]++;
if (TX_int[0] > 255){TX_int[0] = 0;};
////////////////////////////////////////////////////////////////////////////////
};
</script>
</body>
</html>Код: Выделить всё
<!DOCTYPE html>
<html>
<head>
<title>crc и КС</title>
<h2>Расчёт crc и КС:</h2>
</head>
<body>
<script>
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////Buf:
var Buf = [
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////TX_int:
var TX_int = [
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
var xTX = 0; // счёт xTX
var TX_len = 12; // TX_len
var String;
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////crcTX:
var crcTX = 0; var bcrcTX = 0; var aTX = 0; var bTX = 0;
function fcrcTX(){
crcTX = 0xFFFFFFFF;
for (bTX=0; bTX<(TX_len-4); bTX=bTX+4) {
bcrcTX=TX_int[bTX];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+1];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+2];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+3];
crcTX ^= bcrcTX;
for( aTX = 0; aTX < 32; aTX++ ){
if ((crcTX & 0x80000000) != 0){crcTX = (crcTX << 1) ^ 0x04C11DB7;}//Eth.
else {crcTX = (crcTX << 1);};
};
};
TX_int[TX_len-4] = ((crcTX>>24) & 0xFF);// crc
TX_int[TX_len-3] = ((crcTX>>16) & 0xFF);// crc
TX_int[TX_len-2] = ((crcTX>>8) & 0xFF); // crc
TX_int[TX_len-1] = ((crcTX) & 0xFF); // crc
};
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////CheckSum:
/*
function DoCheckSum( uint8_t *Buf, uint16_t Size ){
// Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
};
*/
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////наверное, можно немного упростить:
/*
public static ushort DoCheckSum(byte[] Buf, ushort Size)
{
ushort Cnt = 0, Tmp1 = 0, Tmp2 = 0;
if (Size == 0) { return 0; }
while (Cnt < Size)
{
// Tmp1
Tmp1 += Buf[Cnt++];
if (Tmp1 > 0x00FE) {
Tmp1 += 0xFF01;
}
// Sum
Tmp2 += Tmp1;
if (Tmp2 > 0x00FE) {
Tmp2 += 0xFF01;
}
}
// Финализация
Tmp2 += Tmp1;
if (Tmp2 > 0x00FE) {
Tmp2 += 0xFF01;
}
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2;
if (Tmp1 > 0x00FE) {
Tmp1 += 0xFF01;
}
Tmp1 ^= 0x00FF;
return (ushort)((Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00));
}
*/
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////HEX(int)> LCD(String):
var bi = 0;
function LCD_HEX(bi) {
///////////////////
bi &= 0xFF;
var z = 0;
var HEX = "";
///////////////////
z=0; while (bi>15) {z++; bi=bi-16;};
if (z==0) {HEX = "0";} if (z==1) {HEX = "1";} if (z==2) {HEX = "2";} if (z==3) {HEX = "3";}
if (z==4) {HEX = "4";} if (z==5) {HEX = "5";} if (z==6) {HEX = "6";} if (z==7) {HEX = "7";}
if (z==8) {HEX = "8";} if (z==9) {HEX = "9";} if (z==10) {HEX = "A";} if (z==11) {HEX = "B";}
if (z==12) {HEX = "C";} if (z==13) {HEX = "D";} if (z==14) {HEX = "E";} if (z==15) {HEX = "F";}
///////////////////
z=0; while (bi>0) {z++; bi=bi-1;};
if (z==0) {HEX += "0";} if (z==1) {HEX += "1";} if (z==2) {HEX += "2";} if (z==3) {HEX += "3";}
if (z==4) {HEX += "4";} if (z==5) {HEX += "5";} if (z==6) {HEX += "6";} if (z==7) {HEX += "7";}
if (z==8) {HEX += "8";} if (z==9) {HEX += "9";} if (z==10) {HEX += "A";} if (z==11) {HEX += "B";}
if (z==12) {HEX += "C";} if (z==13) {HEX += "D";} if (z==14) {HEX += "E";} if (z==15) {HEX += "F";}
///////////////////
HEX += " ";
return HEX; //String
}
////////////////////////////////////////////////////////////////////////////////
</script>
<!-----------------------------label------------------------------------------->
<div id='label'
style='position: absolute; left: 10px; top: 100px; width: 970px; height: 0px;
font-size: 30px; color: #000000; background: #1CD3A2;'>crc:</div>
<script>var label = document.getElementById('label');</script>
<!-----------------------------label_1----------------------------------------->
<div id='label_1'
style='position: absolute; left: 10px; top: 200px; width: 970px; height: 0px;
font-size: 30px; color: #000000; background: #1CD3A2;'>КС:</div>
<script>var label_1 = document.getElementById('label_1');</script>
<!-----------------------------Button------------------------------------------>
<input id='button' type='button' value='нажми меня ))' onClick='Button();'
style='position: absolute; left: 10px; top: 300px; width: 500px; height: 80px;
font-size: 50px; border: 4px solid maroon; background: #00FF00;'>
<script>
function Button() {
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////DoCheckSum:
//DoCheckSum();
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////crc:
fcrcTX();
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////LCD:
String = "crc: ";
for (xTX=0; xTX<TX_len; xTX++) {
String += LCD_HEX(TX_int[xTX]);
};
label.innerHTML = String;
TX_int[0]++;
if (TX_int[0] > 255){TX_int[0] = 0;};
///////////////////
String = "КС: ";
for (xTX=0; xTX<TX_len; xTX++) {
String += LCD_HEX(Buf[xTX]);
};
label_1.innerHTML = String;
Buf[0]++;
if (Buf[0] > 255){Buf[0] = 0;};
////////////////////////////////////////////////////////////////////////////////
};
</script>
</body>
</html>
так ВЫШЕ ПИСАЛИ ЗАЧЕМ)) будем подменять пакеты...HardWareMan писал(а):В чём здесь заключается величие сумрачного гения?
Вы картинку выше смотрели ? В нем есть спец. функция! ШЕСТН.В.ДЕКo90 писал(а):очень заморочно в неё шестнадцатиричные числа обрабатывать.
Надо в реальном времени...muravei_ писал(а):[uquote="HardWareMan",url="/forum/viewtopic.php?p=4743150#p4743150"]
В реальном времени оно конечно не сможет.
Вы картинку выше смотрели ? В нем есть спец. функция! ШЕСТН.В.ДЕКo90 писал(а):очень заморочно в неё шестнадцатиричные числа обрабатывать.
Надо в реальном времени...muravei_ писал(а):[uquote="HardWareMan",url="/forum/viewtopic.php?p=4743150#p4743150"]
В реальном времени оно конечно не сможет.