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

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++ Доступ к переменной по абсолютному адресу. Мне нужно обратится к ячейке памяти с известным конкретным адресом (это может быть вектор прерывания, переменная БИОС итд). Как это сделать на Си? На Паскале это делается легко. Можно просто объявить переменную по абсолютному адресу через оператор absolute. Можно достать через указатель присвоив ему конкретное числовое значение через функцию ptr. А в Си я что то ничего такого не нашел. Использую... подробнее

Показать сообщение отдельно
Korbofos
3 / 3 / 0
Регистрация: 15.08.2011
Сообщений: 137
15.08.2011, 19:57  [ТС]     Com port (writefile кривая работа)
Да мк это микроконтроллер 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);
}
}
 
Текущее время: 18:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru