[an error occurred while processing this directive]
Скажите плиз, что я делаю не так? (Keil C)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Эсперыч 06 декабря 2002 г. 09:09

Имеецца код считывния последовательного АЦП в процдуре прерывания - нужно шобы было все быстро:
uint Sample;
//------------------------------------------
Sample = 0;

CLK_ADC = 1; // read_bit 11
Sample <<= 1; Sample |= Dout_ADC;
CLK_ADC = 0;

... // и так далее...

CLK_ADC = 1; // read_bit 0
Sample <<= 1; Sample |= Dout_ADC;
CLK_ADC = 0;
//------------------------------------------

И это все работает!

Но что бы уменьшить код и ускорить процесс, решил сделать так:

bdata uint Sample;
sbit Sample_bit_11 = Sample^11;
...
sbit Sample_bit_0 = Sample^0;

//------------------------------------------
Sample = 0;

CLK_ADC = 1; // read_bit 11
Sample_bit_11 = Dout_ADC;
CLK_ADC = 0;

... // и так далее...

CLK_ADC = 1; // read_bit 0
Sample_bit_0 = Dout_ADC;
CLK_ADC = 0;
//------------------------------------------

И вот это уже выдает какую-то фигню :(

В чем может быть проблема?
--
Спасибо,
Влад

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru