Может из-за того, что USR - не однобайтное число, или компилятор как-то выносит за скобки "повторяющееся действие" - USICR=0x1B...
Нужно попробовать передать вместо USR какое-нибудь число (константу) размером в байт.
попробовала передать unsigned char temp = 8;
вот что вышло:
а можно сделать asm вставку? как это примерно должно выглядеть?
можно писать так?
katbka писал(а):
попробовала передать unsigned char temp = 8;
вот что вышло:
Ну вот, все правильно передалось. Теперь нужно попробовать передавать по два байта. Младший просто после логического умножения USR на 0xFF, а старший - сначала сдвинуть USR вправо на 8 бит, потом тоже на 0xFF умножить.
katbka писал(а):
а можно сделать asm вставку? как это примерно должно выглядеть?
можно писать так?
Engineer_Keen писал(а):
Ну вот, все правильно передалось. Теперь нужно попробовать передавать по два байта. Младший просто после логического умножения USR на 0xFF, а старший - сначала сдвинуть USR вправо на 8 бит, потом тоже на 0xFF умножить.
а то что "2.154 s 2.154 s ??"
это нормально? меня эти вопросы смущают..
Последний раз редактировалось katbka Чт дек 29, 2011 18:32:50, всего редактировалось 2 раза.
katbka писал(а):
а то что "2.154 s 2.154 s ??"
это нормально.. меня эти вопросы смущают..
Один из "??" относится к обратной линии данных SPI, так как там ничего не передается, то нарисованы знаки вопроса.
Вторая пара знаков вопроса относится к нашим данным. Не знаю почему, но байт похоже передался не полностью, возможно SS или CLK поднялись "не в той фазе", тут нужно осциллографом посмотреть. Ну а то что время одинаковое, так это из-за того что байт передается менее чем за 1 мс.
katbka писал(а):
а то что "2.154 s 2.154 s ??"
это нормально.. меня эти вопросы смущают..
Один из "??" относится к обратной линии данных SPI, так как там ничего не передается, то нарисованы знаки вопроса.
Вторая пара знаков вопроса относится к нашим данным. Не знаю почему, но байт похоже передался не полностью, возможно SS или CLK поднялись "не в той фазе", тут нужно осциллографом посмотреть. Ну а то что время одинаковое, так это из-за того что байт передается менее чем за 1 мс.
// Расчет максимального значения среди средних арифметических
USR=0;
j=0;
for (i=0; i<=7; i++)
{
if (USR<srednee[i])
{
USR=srednee[i]; //суммируем значения массива данных
j=i; //меняем номер канала
};
}