-
- Все остается как и было и с оптимизацией и без. Volatile, как и объявление глобальной переменной я вынес когда пробовал разные варианты. Brains(622 знак., 16.09.2009 20:46, )
- Нельзя загружать только часть значения переменной. Потому что ее значение может быть неопределенным. - rezident(16.09.2009 20:51)
- А пардон! У вас же переменная типа short (2 байта), а читаете вы значение из 8-ми битного порта. Так что компилятор в своем праве: сначала читает значение 8-ми битной переменной в 16-ти разрядный регистр, а потом значение 16-ти разрядного регистра rezident(174 знак., 16.09.2009 20:37)
- Ваш пример работает, но мне, к сожалению не подходит. Brains(986 знак., 16.09.2009 20:57, )
- В коде С есть неточность - unsigned char in_byte; надо читать unsigned short in_word;, Brains(38 знак., 16.09.2009 21:02, )
- Практически ваш код rezident(1512 знак., 16.09.2009 21:35 - 21:40)
- Добавил volatile к определению in_word, чтобы компилятор ее не выбрасывал. Ну main увеличился на одну команду. ReadExtMem() по прежнему в пять команд умещается. rezident(380 знак., 16.09.2009 21:45)
- Большое Вам спасибо! Очень помогли, потому что эта функция базовая и вызываться будет много раз до верхних слоев. - Brains(16.09.2009 22:02, )
- Добавил volatile к определению in_word, чтобы компилятор ее не выбрасывал. Ну main увеличился на одну команду. ReadExtMem() по прежнему в пять команд умещается. rezident(380 знак., 16.09.2009 21:45)
- Практически ваш код rezident(1512 знак., 16.09.2009 21:35 - 21:40)
- В коде С есть неточность - unsigned char in_byte; надо читать unsigned short in_word;, Brains(38 знак., 16.09.2009 21:02, )
- Ваш пример работает, но мне, к сожалению не подходит. Brains(986 знак., 16.09.2009 20:57, )
- Все остается как и было и с оптимизацией и без. Volatile, как и объявление глобальной переменной я вынес когда пробовал разные варианты. Brains(622 знак., 16.09.2009 20:46, )