Контроллер AtTiny 2313
среда CodeVisionAVR 1.25.7 beta 5 Proffessional
Кварц 7.372000 МГЦ
схема рабочая (другие прошивки пашут - правда не мной записанные)
скорость обмена пробовал 19200 и 115200
прочие настройки ком порта:
Parity Bits Odd
StopBits OneStopBit
DataBits Eight
Фьюзы выставлял вот так
http://i004.radikal.ru/0804/9e/78612fb7fa28.jpg
Вот процедура вызываемая из процедуры main в беск. цикле
while (stop==0)
{
ReadPort();
...........
..........
}
cама процедура
void ReadPort()
{
unsigned long b1,b2,b3;
char recive;
if (rx_counter›0)
{
recive = getchar();
if (recive ›79) {
switch (recive)
{
case 80:
stop=0; SetDirection(1);
SetEnable(1);
intervalSet();
break;
case 81:
stop=0; SetDirection(0);
SetEnable(1);
intervalSet();
break;
case 82:
stop=1;
direction = 0;
SetEnable(0);
break;
case 83:
putchar(position.Bytes[0]);
putchar(position.Bytes[1]);
putchar(position.Bytes[2]);
// putchar(position.Bytes[3]);
break;
case 84:
putchar(koncUp);
putchar(koncDw);
break;
};
};
if ((recive‹7
![Горд собой](images/smilies/icon_dovl.gif)
&(rx_counter ›= 3)) {
b1 = getchar();
b2 = getchar();
b3 = getchar();
switch (recive)
{
case 65:
Konc_type= b1;
Step_type= b2;
Enable_type= b3;
break;
case 66:
interval1= b1;
break;
case 68:
interval2 = b1+(b2*256)+(b3*65536);
break;
case 69:
position.Bytes[0]= b1;
position.Bytes[1]= b2;
position.Bytes[2]= b3;
break;
case 71:
current_interval = b1+(b2*256)+(b3*65536);
initInterval = current_interval;
break;
case 72:
speed_increase = b1;
break;
};
}
}
};
Так вот если из компа
отправлять
comport2.WriteStr(char(80)); - символ с #80
то происходит срабатывание case 80:
а на символ comport2.WriteStr(char(81));
срабатывание case 81:
не происходит то же самое и с другими командами
за исключением
comport2.WriteStr(chr(83)); которая срабатывает
и передает в комп три байта