Перейти к содержанию

вопрос прграммерам


megaOlega

Рекомендуемые сообщения

прошу пардон, если вопрос не умный, чет не могу понять... (кусок взят из <93с66.blr>)

#define    SK_H    PORTE |= 2
#define    SK_L    PORTE &= 2^255

#define    DI_H    PORTE |= 4
#define    DI_L    PORTE &= 4^255

...........

Proc ShiftOutWord(value)
{
    var Counter;
    Counter = 16;     
    for(Counter = 0; counter < 16; counter++)
    {
        if(Value & 0x8000)    DI_H;
        else                DI_L;
        SK_H; SK_L;                 // rising edge SK
        value = value << 1;           // next bit
    }    
}

Длительности  DI, SK определяются, временем выполнения операций 

 PORTE |= 2 , PORTE &= 2^255

 PORTE |= 4 , PORTE &= 4^255

процем at91sam7s256 c резонатором 18.432 МHz, я правильно понимаю?

 

 

 

Ссылка на комментарий
Поделиться на другие сайты

А если надо клоки 1мкс скажем, придется делать в ручную задержки, высчитывать время выполнения операций пересылки)).... да и, в предоставленных описаниях,  нет доступа к ресурсам процессора. Как реализовать? библиотек готовых нету?

 п.с:  PORTE |= 2 , PORTE &= 2^255 ; еепром не прощелкает такой clk?....( мин длительность слк 93схх  ~0.25мкс, а это больше

10 тактов проца, на 48МНz..)    хотя работает)))

Ссылка на комментарий
Поделиться на другие сайты

Похоже только вручную. Команды выполняются не за один такт,  вся работа идет через интерпретатор команд. К таймерам процессора доступа нет. Есть постоянно работящий таймер FAST_TIMER. Вот описание -

 

Ссылка на комментарий
Поделиться на другие сайты

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...