Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2011, 12:39   #1
EugenK
Пользователь
 
Регистрация: 18.03.2011
Сообщений: 22
По умолчанию Системный таймер.

Хочу запрограммировать таймер, и пытаюсь понять какие действия мне необходимо для этого совершить. Прошу вас помочь мне с этим разобраться.
Итак, мне нужно на LPT посылать сигналы определённой длительности, такие как показано на рисунке во вкладке. Для этого я хочу использовать системный таймер. Как я пытался сам разобраться, для этого мне необходимо:
1) Отправить управляющее слово в регистр команд через порт 0х43.
2) Отправить в канал 0 по адресу 0х40 нужный мне коэффициент пересчёта.
3) Допустим я сделаю частоту счётчика 1 МГц, тогда мне затем необходимо будет считать нужное количество импульсов которые отсчитал счётчик и это будет нужная мне длительность моего сигнала, который я отправлю на LPT.

У меня возникли следующие вопросы:
1) Режим работы таймера. Насколько я правильно понимаю, мне нужен режим генерации периодических прямоугольных сигналов?
2) Ввод коэффициента пересчёта. Он вводится следующим образом сначала младший, затем старший разряды. Я нашёл следующий пример

outportb(0x40,(char)cnt); /* low byte */
outportb(0x40,(char)(cnt>>8)); /* hi byte */

в каком виде будет переменная cnt, допустим если она будет равна 1, так и писать cnt = 1?
3) Считать содержимое счётчика. Каким образом? Точно так же как в предыдущем примере только inport? (конечно же перед тем как начать считывание нужно будет отправить в регистр команд соответствующее слово).
Изображения
Тип файла: jpg таймер.jpg (22.5 Кб, 135 просмотров)
EugenK вне форума Ответить с цитированием
Старый 13.07.2011, 12:38   #2
EugenK
Пользователь
 
Регистрация: 18.03.2011
Сообщений: 22
По умолчанию

Помогите, вот набрал следующий код:


PHP код:
#include <stdio.h>
#include <conio.h>

main() {

       
unsigned i;
       
char k;
       
k=0;
       
       
outportb(0x43,0x36);
       
outportb(0x40,k);
       
outportb(0x40,(k>>8));

    
outport(0x430x00);
    
outport(0x430x30);

    
i=inport(0x40);
    
i=(inport(0x40)<<8)+i;

    
printf("Schetchik: %04.4X\n"i);

    
getch ();

          return 
0;

Так вот, что в данном случае я вывожу на экран и скакой частотой тикает счётчик, если я ввожу 0?
EugenK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно разработать системный таймер в Delphi Fonochka Помощь студентам 0 24.11.2010 19:55
Системный таймер Mixim Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 30.01.2010 12:52
Системный таймер и частота процессора falabella Помощь студентам 12 26.04.2008 00:45