
Сообщение от
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 что будем писать в него номер регистра и еще раз пишем на шину данных номер регистра. Так же и с данными.