-
- Издержки переходного периода. Нет смысла анализировать работающий кусок программы, это просто потеря времени. Если не укладывается по времени/объему - пишем кусок на Асме или берем более мощный процессор. - Михаил Е.(17.09.2009 11:40)
- Анализировать код, предназначенный для работы с hardware, всегда есть смысл. - rezident(17.09.2009 14:43)
- А что получается, если квалификатор volatile в определении переменной in_byte убрать? - rezident(16.09.2009 20:26)
- Все остается как и было и с оптимизацией и без. 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, )
- Издержки переходного периода. Нет смысла анализировать работающий кусок программы, это просто потеря времени. Если не укладывается по времени/объему - пишем кусок на Асме или берем более мощный процессор. - Михаил Е.(17.09.2009 11:40)