KP580BM80A
05.11.2010, 01:00
Привет всем знатокам AY/YM чипа.
Как известно из datasheet, генератор огибающей этого чипа может генерировать 10 разных видов огибающей в зависимости от содержания регистра Envelope Shape/Cycle Control Register (RD):
b3 b2 b1 b0
00xx \___
01xx /___
1000 \\\\\
1001 \___
1010 \/\/\
1011 \----
1100 //////
1101 /----
1110 /\/\/
1111 /___
b3 - continue
b2 - attack
b1 - alternate
b0 - hold
Исходя из рисунка в даташите, форма огибающей с кодом 00xx идентична 1001, а 01xx -- идентична 1111.
Но нет ли тут подвоха? Зачем инженерам понадобилось вводить дополнительный бит CONTINUE, когда можно было бы обойтись 3-мя?
Если следовать из логики названия, то при записи в регистр RD значения с CONTINUE=0 должен происходить сброс уровня огибающей до значения 0 или 15 (в зависимости от бита ATTACK). А при записи значения с CONTINUE=1 генерация огибающей должна продолжаться от текущего уровня.
Так ли это на самом деле или все таки никакой разницы нету?
Как известно из datasheet, генератор огибающей этого чипа может генерировать 10 разных видов огибающей в зависимости от содержания регистра Envelope Shape/Cycle Control Register (RD):
b3 b2 b1 b0
00xx \___
01xx /___
1000 \\\\\
1001 \___
1010 \/\/\
1011 \----
1100 //////
1101 /----
1110 /\/\/
1111 /___
b3 - continue
b2 - attack
b1 - alternate
b0 - hold
Исходя из рисунка в даташите, форма огибающей с кодом 00xx идентична 1001, а 01xx -- идентична 1111.
Но нет ли тут подвоха? Зачем инженерам понадобилось вводить дополнительный бит CONTINUE, когда можно было бы обойтись 3-мя?
Если следовать из логики названия, то при записи в регистр RD значения с CONTINUE=0 должен происходить сброс уровня огибающей до значения 0 или 15 (в зависимости от бита ATTACK). А при записи значения с CONTINUE=1 генерация огибающей должна продолжаться от текущего уровня.
Так ли это на самом деле или все таки никакой разницы нету?