Форум программистов, компьютерный форум, киберфорум
Наши страницы

Com port (writefile кривая работа) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ книги по c++ http://www.cyberforum.ru/cpp-beginners/thread342234.html
знает ли кто то библиотеку где можно скачать книгу с сайта(не с файлообменника(letibit turbobit)) или можно онлайн читать книги естественно по c++
C++ Использование BassNet.dll. Проблема с инициализацией и воспроизведением файла mp3 Пожалуйста, помогите с библиотекой BassNet.dll (знаю уже были темы, связанные с использованием этой библиотеки, но так как в них не нашел рабочего примера, создал эту тему) Проблема в том, что я... http://www.cyberforum.ru/cpp-beginners/thread342232.html
C++ контейнеры, вектор
Привет! Подскажите пожалуйста как осуществить доступ к элементу вектора, который сам состоит из векторов типа char. Приведите пожалуйста пример (или ссылочку) с итератором (или такое делают только...
функции C++
народ помогите пожалуйста с созданием функции.. я не знаю как ее написать на с++)) пытался по аналогии с main() чета не вышло)) напишите пожалуйста в ответах функцию например a*a))) заранее...
C++ DevC++ http://www.cyberforum.ru/cpp-beginners/thread342219.html
здрасти всем, народ у меня один и тот же код на разных компиляторах делает разные вещи, это нормально(DevC++ vs VS 2008)? да и как в DevC++ пошагово пройтись (у меня у StepInto visible==false) ?
C++ Доступ к переменной по абсолютному адресу. Мне нужно обратится к ячейке памяти с известным конкретным адресом (это может быть вектор прерывания, переменная БИОС итд). Как это сделать на Си? На Паскале это делается легко. Можно просто объявить... подробнее

Показать сообщение отдельно
Korbofos
4 / 4 / 0
Регистрация: 15.08.2011
Сообщений: 157
15.08.2011, 19:57  [ТС]
Да мк это микроконтроллер Atmega128
Скорость забыл после ряда изменений)))
Вернул назад(dcb.BaudRate = CBR_9600 картина та же.
Скорость мк и порта согласованны!
Программа мк
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
unsigned char rx_buffer[RX_BUFFER_SIZE];
unsigned char rx_index;
bit status_rx_buffer=EMPTY;
 
 
                                   //Interrupt's
 
interrupt [USART1_RXC] void usart1_rx_isr(void)
{
unsigned char status,data;
status=UCSR1A;
data=UDR1;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
   {rx_buffer[rx_index++]=data;}
if (rx_index == RX_BUFFER_SIZE) 
 {
 rx_index=0;
 status_rx_buffer=FULL;  //пришло три байта
 }
else
 {status_rx_buffer=EMPTY;} 
}
 
 
 
while (1)
 {
  while(status_rx_buffer==EMPTY); //Ждём прихода трёх байт
  switch (FUNCTION)  //rx_buffer[0]
  {
  case RADAR:
  radar();
  break;
 
  case ROBOMD2:
  robomd2(PARAM1,PARAM2); //rx_buffer[1] и rx_buffer[2]
  while(status_tx_buffer==FULL);
  FUNCT_TO_PC=ROBOMD2;
  PARAM1_TO_PC=PARAM1;
  PARAM2_TO_PC=PARAM2;
  return_connect;
  break;
 
  case SERVO:
  servo(PARAM1,PARAM2); //rx_buffer[1] и rx_buffer[2]
  while(status_tx_buffer==FULL);
  FUNCT_TO_PC=SERVO;
  PARAM1_TO_PC=PARAM1;
  PARAM2_TO_PC=PARAM2;
  return_connect;
  break;
 
  case ADC_FUNCT:
  start_adc(PARAM1); //rx_buffer[1] и rx_buffer[2]
  while(status_tx_buffer==FULL);
  FUNCT_TO_PC=ADC_FUNCT;
  PARAM1_TO_PC=read_adc();
  PARAM2_TO_PC=0;
  return_connect;
  break;
 
  default:
  FUNCT_TO_PC=0;
  PARAM1_TO_PC=0;              //
  PARAM2_TO_PC=0;
  return_connect;
  break;
  }
 }
Добавлено через 5 минут
Вот так уходит три байта но всё равно с каким то "мусором"
C++
1
2
3
4
5
6
7
8
9
char Write_Port (unsigned char *buf, size_t raz)
{
DWORD dwWritten;
for(char i=0;i<raz;i)
{
WriteFile(hCom,buf+i,1,&dwWritten,NULL);
Sleep(2);
}
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.