Что происходит, когда вы отправляете 8-битное число на выход 4bit? Язык C - PullRequest
1 голос
/ 19 июня 2010

Я учусь в средней школе, и у нас есть проект по электронике.

У нас есть выход с нашего компьютера, который является 4-битным, выходной адрес 37Ah и мой учитель сделал это:

outportb(0x37A,0x80);

так что же появится на выходе? 0 или 8 часов?

Ответы [ 2 ]

1 голос
/ 19 июня 2010

Если это не 4-битный ЦП из 70-х, тогда ваш выходной порт будет 8 бит, но подключенное оборудование может использовать только 4. В этом случае обычно (но не обязательно)используйте младшие 4 бита, чтобы иметь значение 0x0.Но это делает использование 0x80 дымовой завесой, это будет то же самое, что 0x00 и 0xF0.Таким образом, исходя из этого, я бы предположил, что здесь используются старшие 4 бита, а отправленное значение равно 0x8.

Но инженер по аппаратным средствам искаженного типа мог бы использовать средние 4 бита.

1 голос
/ 19 июня 2010

Вы должны объяснить свою проблему немного лучше.Какой микропроцессор вы используете и т.д. Это 4-портовый выход у вас?

Но 0x80 равен: 0b1000000, и если вы используете младшие 4 бита: 0b1000xxxx, то они будут равны нулю (не включены).Это произойдет, если 0x37A 8bit.

В противном случае, объясните свою проблему лучше:)

Не можете ли вы попытаться увидеть, что происходит?или это только теоретическое до сих пор?

РЕДАКТИРОВАТЬ:

Я вижу, что это порт принтера.Проверьте http://www.tinet.cat/~sag/gifs/ParallelPort.gif, если вы используете порт 2,3,4,5, тогда старшие 4 бита действительно не имеют значения :), как сказано в моем комментарии.

...