Форум программистов, компьютерный форум CyberForum.ru

передача прерываний - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ключи RSA http://www.cyberforum.ru/cpp-beginners/thread82004.html
Помогите, пожалуйста, разобраться с ключами для криптосистемы RSA :) А конкретнее с их генерацией, написать надо самому, реализован набор функций для работы с длинными числами, т.е. арифметика. У меня тупо ступор, арифметика рабочая, так как на примерах все правильно вроде бы считается. Брал ключи из нашей методички: n = d9ae128b74cd0aa3678f8a173d6d43871b7bdae59c721158ba83d640ffcb6d13 e =...
C++ Редактирование из таблицы Есть таблица Нужно чтобы редастировать одну ячейку Я вроди сделал код но он не меняет данные из ячейки подскажите пожалуйста, где проблема... #include <stdio.h> int edit() { int sel; http://www.cyberforum.ru/cpp-beginners/thread81998.html
C++ программа C++ для вычисления функции y=f(x)=arccot(x). всё ли правильно??
здравствуйте! мне нужно было написать программу для вычисления арккотангенса ( y=f(x)=arccot(x) ) с использованием формулы суммы (разложения) для|x|< 1. (формулу я, к сожалению, не могу сюда скопировать). без использования стандартных математических функций. также нужно было протестировать с каким-нибудь х. вычисление нужно прервать, когда разница значений двух следующщих друг за другом членов z...
C++ Подскажите пожалуйста по С++:циклы,if else
Помогите пожалуйста исправить готовый код.Как можно вводить полные инициалы в массив структур и как при выводе не отображать слово none несколько раз подряд!В задаче сказано,что информацию нужно сохранять в динамически выделенном массиве структур,а затем вывести на экран имена вкладчиков,и если в какой то категории не окажется вкладчиков то напечатать none. #include <cstdlib> #include...
C++ Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. http://www.cyberforum.ru/cpp-beginners/thread81967.html
Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. Помогите пожалуйста, как это всё записать то на С++? Не знаю язык С++ просто!
C++ Для данного вещественного x найти значение следующей функции f, при-нимающей значения целого типа: Для данного вещественного x найти значение следующей функции f, при-нимающей значения целого типа: 0, если x < 0, f(x) = 1, если x принадлежит [0, 1), [2, 3), … , –1, если x принадлежит [1, 2), [3, 4), … . подробнее

Показать сообщение отдельно
megakatapuz
0 / 0 / 0
Регистрация: 02.01.2010
Сообщений: 4
02.01.2010, 14:27     передача прерываний
Смысл такой нужно создать прерывание использовав 2 канал таймера забить его в цикл и через линию dtr передавать(через ик-передатчик) потом через линию DCD(данные поступают в ик-приемник) принимать данные прерывания , подключив 0 канал таймера определить с какой частатой приходят эти прерывания.
P.S. реализовать в bc 3.1

Добавлено через 24 минуты
есть код который передает числа с 1 до 9, изменить его как то надо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
 
// OBYAVLENIE PEREMENNIH I KONSTANT
#define BASE 0x3f8
 
static unsigned char ch0_h, ch0_l;
unsigned char kb;
int i=0, i0=0, j=0;
double Freq=10;
int interflag=0;
 
// PRERIVANIYE PO NAJATIYU KLAVISH
void interrupt (*SvInt09)(...);
void interrupt NewInt09(...)
 {disable();
    i0=0;
    kb=inportb(0x60);
    if((kb>=0x82)&&(kb<=0x8a))
        i=(kb-0x80)*(kb-0x80);
    outportb(0x20,0x20);
    enable();
 }
 
// PRERIVANIYE PO TAYMERU
void interrupt (*SvInt08)(...);
void interrupt NewInt08(...)
 {disable();
    interflag=1;
    outportb(0x20,0x20);
    enable();
 }
 
// VOSSTANOVLENIE RABOTI TAYMERA I OBRABOTCHIKOV PRERIVANIYA
void stop()
 {disable();
    outportb(0x43,0x36);
    outportb(0x40,ch0_l);
    outportb(0x40,ch0_h);
    setvect(0x08,SvInt08);
    setvect(0x09,SvInt09);
    enable();
 }
 
// NASTROIKA TAIMERA I ZAPUSK OBRABOTCHIKOV PRERIVANIY
void start()
 {disable();
    outportb(0x43,0x36);
    ch0_l=inportb(0x40);
    ch0_h=inportb(0x40);
    unsigned int c=(unsigned int)(1193180./Freq+0.5);
    outportb(0x40,(unsigned char)c&0x00ff);
    outportb(0x40,((unsigned char)c>>8)&0xff);
    SvInt08=getvect(0x08);
    SvInt09=getvect(0x09);
    setvect(0x08,NewInt08);
    setvect(0x09,NewInt09);
    atexit(stop);
    enable();
 }
 
// GLAVNAYA FUNKCIYA
void main()
 {unsigned int dcd=0x00, dcd0=0x00, dtr;
    clrscr();
    //ZAPUSK PRERVANIY
    start();
    outportb(BASE+4,inportb(BASE+4)|0x02);
    printf("\n   Vvodite chisla ot 1 do 9 dlya ego peredachi ili ESC dlya vihoda:\n   OUT - peredannye chisla\n   IN - prinyatie chosla\n\n   | OUT | IN |");
    dtr=inportb(BASE+4);
    if(dtr&0x01) dtr--;
    while(kb!=0x81)
     {while(interflag==1)
         {interflag=0;
            //PEREDACHA CHISLA
            if((i0==0)&&(i0!=i))
             {i0=i;
                printf("\n     %.0f",sqrt(i)-1);
             }
            if(i!=0)
             {outportb(BASE+4,dtr|0x01);
                i--;
             }
            if(i==0)
                outportb(BASE+4,dtr);
            //PRIYOM CHISLA
            dcd=~(inportb(BASE+6))>>7;
            dcd=dcd&0x01;
            if(dcd&0x01)
                j++;
            if((dcd0&0x01)&&(dcd0!=dcd))
                printf("\t   %.0f",sqrt(j)-1);
            if(dcd==0x00)
                j=0;
            if(dcd0!=dcd)
                dcd0=dcd;
         }
     }
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru