
Сообщение от
Andrey_Ak
Может мне съездить домой и подключить НМЛ к контроллеру?
Пока и так есть над чем подумать :)
...
Вот какую интересную "самодеятельность" показал контроллер:
Код:
@176730/000054
@176730/000054
@176732/000376 ^
176730/000044
@176732/000376 0^
176730/000040 1
@176730/000054
@176732/000200 0^
176730/000040 1
@176732/000200 ^
176730/000044
@176732/000200 0^
176730/000040 1
@176730/000054 1
@176730/000004 24
@176730/000004
@176732/000200 1^
176730/000004 24
@176730/000044
@176732/000200 ^
176730/000044
@176732/000200 0^
176730/000040 1
@176730/000054
@176732/000200 1^
176730/000040 1
@176730/000004 24
@176730/000044
@176732/000200 ^
176730/000044
@176732/000200 0^
176730/000040 1
@176730/000054
1. После RESET регистр 176730 имеет значение 054 ( установлены BIT_5, BIT_3, BIT_2 csr ), а регистр 176732 - случайное значение в диапазоне 0..0377.
2. Запись в регистр 176730 после RESET изменяет его значение только в том случае, если в записываемом значении установлен BIT_0 - тогда сбрасываются BIT_5 и BIT_3 ( получается 176730/000004 ) и контроллер начинает ожидать записи в регистр 176732. Затем, если в регистр 176732 записан 0 - значение регистра 176732 изменяется со случайного на число 0200, а в регистре 176730 устанавливается BIT_5 ( получается 176730/000044 ).
3. После любого чтения регистра 176732 - сбрасывается BIT_3 регистра 176730 ( если сделать это сразу после RESET, то получается 176730/000044 ).
4. После любой записи в регистр 176732, когда контроллер не ожидает записи туда - сбрасывается BIT_2 регистра 176730 ( если сделать это сразу после RESET, то получается 176730/000040 ). Если записать в регистр 176732 значение 0 и после этого записать 1 ( т.е. BIT_0 ) в регистр 176730 - то в этом регистре установятся BIT_5, BIT_3 и BIT_2 ( получается 176730/000054 ).
Весьма похоже, что строчка
Код:
055276 Mov (SP)+, @20.(R3)
в драйвере - это запись кода команды в регистр 176732.