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

как исправить ошибку outportb(0x43,0x36); /* Управляющий байт */ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переделать программу 1 в программу 2 с использованием функций http://www.cyberforum.ru/cpp-beginners/thread395185.html
проблема в том, что компилятор не ругается, но программа зависает при выполнении. уже много времени на это потратил. вроде задание не сложное, но я новичок и полностью хочу обуздать этот язык. спасибо всем за помощь заранее! в общем, вот коды: 1: # include "iostream" # include <math.h>
C++ [C++] no operator">>" matches these operands Кто может обьяснить почему компилятор показывает здесь: no operator">>" matches these operands? #include<vector> #include<algorithm> #include<fstream> #include<stdlib.h> #include<iomanip> #include<iostream> int main() http://www.cyberforum.ru/cpp-beginners/thread395182.html
Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки C++
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду очень признательна. Определить принадлежность точки областям, обозначенными прописными буквами А и В. Маленькими буквами обозначены условные пользователем параметры рисунка. Координаты точки x и y и другие параметры вводятся пользователем.
C++ Двумерный массив
Дана матрица А=(aij). Сформировать матрицу В=(bij), где bij=( max(aij))/(i-j),если i>j bij= in(aij),если i=j bij=(max(aij))/(j-i),если i<j При этом необходимо всё разбить на функции. И вопрос, что имеется ввиду под max(aij)? На сколько я понимаю, это функция max, но для нее необходимо 2 аргумента же... #include <iostream> #include <time.h>
C++ с паскаля на с++ http://www.cyberforum.ru/cpp-beginners/thread395166.html
Program z1; uses crt; const n=10; type matr = array of integer; var i,j,ks1,ks2,min:integer; a:matr;
C++ Множители Здравствуйте! Друзья, помогите пожалуйста сделать не очень сложную ( для вас задачку) буду очень признателен ! Огромное спасибо! Дано число N. Нужно найти такое число, произведение цифр которого равно числу N. Спасибо большое ! Добавлено через 16 минут Ребят помогите пожалуйста! подробнее

Показать сообщение отдельно
Hunter557
13 / 13 / 0
Регистрация: 20.02.2010
Сообщений: 35

как исправить ошибку outportb(0x43,0x36); /* Управляющий байт */ - C++

30.11.2011, 22:32. Просмотров 728. Ответов 0
Метки (Все метки)

Доброго времени суток. Есть программка для управления таймером с такими параметрами: R= 0 - 1 ; F(x)=y=50*sin(x/(10+R))+150 ; Частота=36.4 Гц
И соответственно код:
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
    #include <dos.h>
    #include <math.h>
    #include <stdlib.h>
    #include <graphics.h>
    #include <time.h>
    #include <conio.h>
     
    #define TIMEINT 8           /* Прерывание таймера   */
    #define NN 100 /* Максимальное количество показаний */
     
    void interrupt (*oldtime)();  /* Новый обpаботчик   */
                                 /* пpеpываний таймеpа  */
     
    void interrupt  newtime();   /* Старый обpаботчик   */
                                 /* пpеpываний таймеpа  */
    static int y[NN];  /* Накопитель показаний          */
    static int ny;     /* Индекс в массиве y            */
    static int yc;     /* Текущее значение              */
    static int kf;     /* Счетчик вызовов oldtime       */
    union REGS rr;     /* Запись нового вектора         */
    struct SREGS sr;
    void *readvect(int in);     /* Получение старого вектора */
    void writevect(int in, void *h);/* Запись нового вектора */
     
    /*--------------------------------------------------------*/
    void main()
    {
      unsigned oldtic=65535u;  /* Старый коэфф. деления      */
      unsigned newtic=32768u;  /* Новый коэфф. деления       */
      int dd,                  /* Графический драйвер        */
     
          
          m,                   /* Графический режим          */
          errorcode;           /* Код ошибки                 */
      double x;                /* Аргумент функций sin и cos */
     
      textbackground(0);
      clrscr();
      textattr(0x0a);
      cprintf("              Лабораторная работа N6              ");
      cprintf("\n                Управление таймером               ");
      textattr(0x8e);
      gotoxy(35,12);
      cprintf("Please wait");
      /* Программирование канала 0 */
      outportb(0x43,0x36);                   /* Управляющий байт */
      outportb(0x40,newtic&0x00ff); /* Младший байт счетчика */
      outportb(0x40,newtic>>8);   /* Старший байт счетчика */
      ny=-1;            /* Признак того, что АЦП еще не началось */
      kf=15;
      /* Подключение к вектору */
      oldtime=readvect(TIMEINT);
      writevect(TIMEINT,newtime);
      /* Запуск "непрерывного процесса" */
      randomize();
      for (x=ny=0; ny<NN; x+=1)
        yc=(іnt)(50*sin(x/(10+ random(2)))+150);
      /* Восстановление вектора */
      writevect(TIMEINT,oldtime);
      /* Восстановление канала 0 */
      outportb(0x43,0x36);                   /* Управляющий байт */
      outportb(0x40,oldtic&0x00ff); /* Младший байт счетчика */
      outportb(0x40,oldtic>>8);   /* Старший байт счетчика */
     
      /* Вывод запомненных результатов */
      dd=3; /* EGA, 16 цветов */
      m=1;  /* Режим 640*350 */
      initgraph(&dd,&m,"");
      /* проверка результата инициализации */
      errorcode = graphresult();
      if (errorcode != grOk)       /* ошибка графического режима */
      {
       printf("Graphics error: %s\n", grapherrormsg(errorcode));
       printf("Press any key to halt:");
       getch();
       exit(1);                         /* аварийное завершение */
      }
      setcolor(10);
      settextstyle(0,0,2);
      outtextxy(15,10,"Результати аналого-цифрового преобразования:");
     
     
      setcolor(9);
      rectangle(15,40,624,330);
      setcolor(11);
      for(ny=0; ny<NN; ny++)
      {
       circle(22+ny*6,330-y[ny]*1,2);
       line(22+ny*6,330,22+ny*6,330-y[ny]*1);
      }
      setcolor(12);
      settextstyle(0,0,1);
      outtextxy(260,340,"Нажмите любую клавишу ...");
      getch();
      closegraph();
    }
     
    /* Новый обpаботчик пpеpиваний таймеpа */
    void interrupt newtime()
    {
      if (--kf<0) {
        /* Виклик oldtime - на 2-й раз */
        (*oldtime)();
        kf=1;
        }
      else /* иначе - сброс контроллера */
        outportb(0x20,0x20);
      if ((ny>=0)                       /* Если АЦП началось, */
        &&(ny<NN))  /* и NN показаний еще не набрано, */
          y[ny++]=yc;        /* запоминание очередного показания */
    }
     
    /* Получение старого вектора */
    void *readvect(int in)
    {
      rr.h.ah=0x35; rr.h.al=in;
      intdosx(&rr,&rr,&sr);
      return(MK_FP(sr.es,rr.x.bx));
    }
     
    /* Запись нового вектора */
    void writevect(int in, void *h)
    {
      rr.h.ah=0x25;
      rr.h.al=in;
      sr.ds=FP_SEG(h);
      rr.x.dx=FP_OFF(h);
      intdosx(&rr,&rr,&sr);
    }
Выдает ошибку в 46 строке:
outportb(0x43,0x36); /* Управляющий байт */
Ошибка:
Bad call of intrinsic function
Как можно исправить этот баг?

использую Turbo C++ 3.1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru