Цитата Сообщение от Vitamin Посмотреть сообщение
Ну вроде как у тебя в 79 посте описано в самом конце так и сделал:

Код:
    void Reset()
    {
      Port->Control(CMD_RESET_STOP);
      Port->Control(CMD_RESET_START);
      Delay();
      Port->Control(CMD_RESET_STOP);
    }

    void Write(uint_t reg, uint_t val)
    {
      Port->Control(CMD_SELECT_ADDR);
      Port->Data(reg);
      Port->Control(CMD_SELECT_DATA);
      Port->Data(val);
      Port->Control(CMD_WRITE_COMMIT);
    }
В том то и дело, что не совсем так. Это первоначальный вариант с которым у меня вообще заиграло. А потом я доработал немного,

Код:
AD(0,1); //BC1=0, BDIR=0
 D(reg);
 AD(1,0); // BC1=1, BDIR=1
 D(reg);

 AD(0,1); //BC1=0, BDIR=0
 D(dat);
 AD(0,0); //BC1=0, BDIR=1
 D(dat);
 AD(0,1); //BC1=0, BDIR=0
Видишь, сначала переводим YM в Inactive, потом посылаем на шину данных данные. Потом говорим YM что будем писать в него номер регистра и еще раз пишем на шину данных номер регистра. Так же и с данными.