Вс июл 15, 2012 01:58:43
Вс июл 15, 2012 03:43:30
Вс июл 15, 2012 04:28:55
Protobear писал(а):пишу все кодом, каков шанс на успех?.
Protobear писал(а):что ему посылать?
Вс июл 15, 2012 04:52:03
Вс июл 15, 2012 08:18:22
Вс июл 15, 2012 11:41:57
radiokot__ писал(а):то что ему посылать?
КОД.
У меня один знакомый на кофейной гуще умеет годать, но на этом форуме вроде таких нет.
Вс июл 15, 2012 12:35:46
Ser60 писал(а):Protobear писал(а):пишу все кодом, каков шанс на успех?.
100%Protobear писал(а):что ему посылать?
См. секцию 5 в ДШ.
Вс июл 15, 2012 18:49:26
Вс июл 15, 2012 19:06:17
Ser60 писал(а):Абсолютно все Вы сделали неправильно и совсем не по картинке. Замечания к коду:
1. Для активизации CS нужно выставить на этом пин лог. 0, а не 1 как в коде.
2. В чип надо передавать 2 байта согласно Fig 5.1. Первый байт - код опеации, второй байт данные.
3. Данные считываются чипом по нарастающему фронту clock-a. Т.е. сначала надо выставить бит на линии SI, потом поднять clock, потом его опустить и только потом менять данные.
4. Я не понял в чем идея IF-THEN-ELSE оператота в функции con()?
5. Не вижу посылки более чем одного бита в этой функции.
Вс июл 15, 2012 19:40:16
Protobear писал(а):Я сначала включаю CS, PORTC=(PORTC|0x02); а затем его выключаю PORTC=(PORTC&0xfd);
Вс июл 15, 2012 21:07:06
Ser60 писал(а):Protobear писал(а):Я сначала включаю CS, PORTC=(PORTC|0x02); а затем его выключаю PORTC=(PORTC&0xfd);
Надо делать наоборот: сначала PORTC=(PORTC&0xfd); а потом PORTC=(PORTC|0x02);
Сигнал CS активизируется нулем!
Ser60 писал(а):Protobear писал(а):Посмотрите в отладчике состояния пинов порта про посылке каждого бита байта.
Вс июл 15, 2012 21:34:08
Вс июл 15, 2012 22:41:48
Пн июл 16, 2012 06:26:39
radiokot__ писал(а):Где SPI ? или трёхпроводный протокол.
Пн июл 16, 2012 11:19:46
Пн июл 16, 2012 14:36:22
radiokot__ писал(а):Чёт плохо пытается.
Пн июл 16, 2012 14:43:27
КРАМ писал(а):radiokot__ писал(а):Где SPI ? или трёхпроводный протокол.
А он и пытается реализовать физический и канальный уровни. Сначала написать выталкивание байта с клоками, как функцию, а потом только передавать в нее управляющие байты и данные логической части протокола.
Пн июл 16, 2012 18:12:45
Пн июл 16, 2012 19:02:44
Пн июл 16, 2012 22:29:03
Ser60 писал(а):Зачем Вы вообще используете функцию pow()? Заведите переменную и присвойте ей значение 128 до входа в цикл. В самом цикле, в конце его, просто делите эту переменную на 2 для следующей итерации. Деление можно организовать сдвигом на 1 бит вправо. МК Вам только спасибо скажет. Или организуйте цикл так:
for (s=128; s!=0; s = s>>1)
{
if ((sss&s) == s) ...