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

Программирование последовательного порта. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Многоразрядные числа http://www.cyberforum.ru/cpp/thread173547.html
Ввести многоразрядное число как строку и сформировать из него массив целых четырёхзначных чисел.(т.е. ячейки по четыре элемента в каждой).
C++ Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента Здравствуйте! Помогите , пожалуйста, решить задачу. Вот текст:1) Дана целочисленная прямоугольная матрица. Определить количествло столбцов, не содержащих ни одного нулевого элемента. 2)Характеристикой строки целочисленной матрицы назовём сумму её положительных чётных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. Все эти задачи нужно... http://www.cyberforum.ru/cpp/thread173449.html
Найти произведение элементов массива, расположенных между минимальным и максимальным по модулю элементами C++
Здравствуйте. Помогите, пожалуйста, решить задачу. Вот текст: В одномерном массиве, состоящем из n ещественных элементов, вычислить: 1) сумму положительных элементов массива 2)произведение элементов массива, расположенных между максимальным и минимальным по модулю элементами Упорядочить элементы массива по убыванию модулей элементов. выполнить, используя динамические массивы. Заранее...
C++ Алгоритмы и программы по обработке одномерных и двумерных массивов
Здравствуйте! Помогите пожалуйста решить задачу. Вот текст:осуществить циклический сдвиг элементов прямоуггольной матрицы на n элементов вправо или вниз . n может быть больше количества элементов в строке или в столбце. Все эти задачи нужно сделать, используя статические массивы заранее спасибо Добавлено через 23 часа 56 минут мне объяснили, как это нужно сделать, но я немогу это написать....
C++ О взаимном расположении двух прямых (на языке С) http://www.cyberforum.ru/cpp/thread173380.html
даны действ. числа x1,y1,x2,y2,x3,y3,x4,y4. (x1,y1) и (x2,y2) - координаты двух точек первой прямой., (x3,y3) и (x4,y4) - координаты двух точек второй прямой. определить расположение прямых (параллельны, перпендикулярны, пересекаются (угол)) помогите пож-та - мало опыта, новичок
C++ Алгоритмы и программы по обработке одномерных и двумерных массивов Здравствуйте. Пишу Вам уже в который раз и прошу о помощи. НЕобходимо написать задачи. Вот текст: В одномерном массиве, состоящем из n ещественных элементов, вычислить: 1) сумму положительных элементов массива 2)произведение элементов массива, расположенных между максимальным и минимальным по модулю элементами Упорядочить элементы массива по убыванию модулей элементов. И ещё:1) Дана... подробнее

Показать сообщение отдельно
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
12.10.2011, 16:23  [ТС]     Программирование последовательного порта.
Если кто-то считает что это нереально, вот вам код:
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
130
131
132
133
134
135
136
137
138
139
140
141
142
/*Програма-чат через послідовний порт(для двох ПК)*/
 
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
char buf[250],buf2[250];
int com,com2;
void initcom1 () {
          /* налаштування поpту COM-1 на pоботу */
outportb(0x3f8,0x80);  /* пiдготовка до завантаження швидкостi */
outportb(0x3f8,0x60);  /* швидкiсть прийому-пеpедачi в 1200 бод */
outportb(0x3f9,0x00);  /* старший байт подiлювача частоти */
outportb(0x3fB,0x03);  /* бiтiв даних = 8
                  стоп-бiтiв = 1
                  тип паpностi невикоpистовуеться
                  поpти 2F8h i 2F9h в звичайному pежимi */
outportb(0x3fC,0x00); /* модем не викоpистовуеться */
outportb(0x3f9,0x00); /* забоpона всих пеpеpивань */
}
void initcom2 ()
 {
          /* налаштування поpту СОМ-2 на pоботу */
outportb(0x2f8,0x80);  /* пiдготовка до завантаження швидкостi */
outportb(0x2f8,0x60);  /* швидкiсть прийому-пеpедачi в 1200 бод */
outportb(0x2f9,0x00);  /* старший байт подiлювача частоти */
outportb(0x2fB,0x03);  /* бiтiв даних = 8
                стоп-бiтiв = 1
                тип паpностi невикоpистовуеться
                     поpти 2F8h i 2F9h в звичайному pежимi */
outportb(0x2fC,0x00); /* модем не викоpистовуеться */
outportb(0x2f9,0x00); /* забоpона всих пеpеpивань */
}
void gochat (){
char ch;
int z,k,i,dov;
i=0;
k=1;
z=0;
buf[0]=NULL;
buf2[0]=NULL;
do
 {
 if (k==21) 
{
   clrscr();
   k=1;
   gotoxy(1,23);
   printf("%s",buf);
   gotoxy(1,k);
   textcolor(3);
   printf("%s",buf2);
   k++;
}                  /*Приймач*/
  if(((inport(com))&1)!=0) /* пеpевipка на пpийнятi данi */
  {
   ch=inportb(com2);   /* читання пpийнятого бiту */
   buf2[z]=ch;
   z++;
   outport(com,0x20); /* пiдготовка для пpийому слiдуючого символу */
if (ch==13)
{
buf2[z-1]=NULL;
gotoxy(1,k);
textcolor(3);
printf("%s",buf2);
k++;
buf2[0]=NULL;
textcolor(2);
}
  }
                 /*Передавач*/
  if(kbhit())
  {
   ch=getch();
   gotoxy(i+1,23);
   printf("%c",ch);
   buf[i]=ch;
   i++;
   if (ch==13)
{
dov=i;
gotoxy(1,23);
clreol();
gotoxy(1,k);
printf("%s",buf);
buf[i+1]=13;
k++;
   for(i=0;i<=dov+1;i++)
{
do
     {
      outportb(com2,buf[i]);  /* занесення символу в поpт для пеpедачi */
     }
   while((inport(com) & 0x20)==0);
   delay(100);          /* затpимка, якщо буфеp пустий */
   if((inport(com) & 0x10)==1)
   printf("Обрив лінії!!!");
   buf[i]=NULL;
     }
     i=0;
     
   }
  }    
 } while(ch!=27);    /* Вихiд з програми по натисненнi ESC */
}
void main ()
{
 char ch;
 do
 {
 clrscr();
 gotoxy(30,10);
 printf("1.  Com 1\n");
 gotoxy(30,11);
 printf("2.  Com 2\n");
 gotoxy(30,12);
 printf("3.  EXIT\n");
 ch=getch();
 if (ch=='1')
  {
   com=0x3FD;
   com2=0x3F8;
   initcom1();
   clrscr();
   gochat();
  } else
 if (ch=='2')
  {
   com=0x2FD;
   com2=0x2F8;
   initcom2 ();
   clrscr();
   gochat ();
  } else
If(ch=='3')
{
Exit;
}
  }
  while(ch!='1' && ch!='2' && ch!='3');
}
 
Текущее время: 06:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru