Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
1 / 1 / 1
Регистрация: 02.05.2010
Сообщений: 74

RS-232 (COM - порт) и С++

01.06.2012, 10:07. Показов 3233. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как через прерывания написать программу для управления через COM-порт. Например, по линии Tx с компьютера передаем данные (как они закодированы? например передаем единицу - отключение устройства, 0 - включение).
Есть программа, в нее нужно дописать связь с ПК по протоколу RS-232.
Скину на всякий случай программу. Вот задание: блок управления источником бесперебойного питания, который реализует следующую функциональность: отслеживание параметров сети питания и зарядка батареи, и изменение текущего режима питания (бытовая сеть, батарея), световая и звуковая индикация текущего режима работы.
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
#include <util/delay.h>
#include <avr/interrupt.h>
unsigned char time,t;
 
ISR (SIG_OUTPUT_COMPARE1A){
    if (time==1) {
        t++;
        if (t%2==0) {PORTD  &=~_BV(PD1) //светодиод выкл
                &~_BV(PD2);}            //зуммер выкл
            else {PORTD |=_BV(PD1)      //светодиод вкл
                        |_BV(PD2);} //зуммер вкл
    }
};
int main (void) 
{
    DDRD = 0xFF;
    PORTD |=_BV(2);
    TCCR1B |=_BV(WGM12);
    TCCR1B |=_BV(CS10) |_BV(CS11) &~_BV(CS12);
    OCR1A=15624;
    TIMSK1 |=_BV(OCIE1A);
    sei();
 
ADCSRA |=_BV(ADEN) //Включение АЦП
    |_BV(ADPS1)|_BV(ADPS0); // предделитель преобразователя на 8
ADMUX &=~_BV(REFS1) &~_BV(REFS0) // внешний ИОН
&~_BV(MUX0)&~_BV(MUX1)&~_BV(MUX2)&~_BV(MUX3); // вход PC0
 
 
while(1)
    { 
    unsigned int u1,u2;
    ADCSRA |=_BV(ADSC); //Начинаем преобразование
    while ((ADCSRA&(1 << ADIF))== 0); //Ждем окончания преобразования
     u1 = ADC;  // Считываем  ADC
         
if ((u1 > 778) && (u1 < 983))   //3.8V<u<4.8V
    {PORTD |=_BV(PD1)       //светодиод вкл
           &~_BV(PD0);      //реле выкл
           ADMUX &=~_BV(MUX0);
           time=0;}
    else {                          //u<3.8V   u>4.8V
        PORTD |=_BV(PD0)|_BV(PD3);  //вкл реле №1 и №2
        ADMUX |=_BV(MUX0);
        time=1;}
 
    ADCSRA |=_BV(ADSC); //Начинаем преобразование
    while ((ADCSRA&(1 << ADIF))== 0); //Ждем окончания преобразования
     u2 = ADC;  // Считываем  ADC
 
if (u2 > 983)               //u>4.8V от батареи
    {PORTD &=~_BV(PD3);}    //выкл реле №2
    else {PORTD |=_BV(PD3);}    //вкл реле №2
    _delay_ms(30);
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2012, 10:07
Ответы с готовыми решениями:

Не работает СОМ порт RS-232 через PCI Express
Добрый день коллеги! Возникла проблема, а именно: имею старый газоанализатор, который подключается посредством СОМ порта. Есть компьютер...

Открыть порт 4444 в брэндмауэре. Антивируса нет. провайдером порт открыт
Подскажите как открыть данный порт,все делал как тут http://windows.microsoft.com/ru-ru/windows/open-port-windows-firewall#1TC=windows-7....

В конфигурационном файле прописан порт, но пишет ошибку порт 80 занят другим приложением
Здравствуйте. Пишу решение с 2 проектами - сервер и клиент с дуплексным контрактом. Служба запускается нормально. Когда же запускаю...

1
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
01.06.2012, 21:02
протокола RS-232 не существует.
существует среда передачи - интерфейс RS232,
а какой протокол вы будете задействовать - это ваше дело.
можете свой написать....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.06.2012, 21:02
Помогаю со студенческими работами здесь

rs 232
нужна программа которая будет автоматически определять порт к которому подключенн, отсылалать по rs 232 и принимать байты

RS-232C и RS-232
Здравствуйте, товарищи! Вопрос: Есть некий контроллер. Его настройка осуществляется через интерфейс RS-232C с помощью специального ПО,...

Кабель RS-232
Доброго времени суток! Этот кабель по другому называется COM? Что значит передача последовательная? Режим передачи данных синхронный...

Com Port RS 232
Доброго времени суток. Имеется термопринтер, подключенный к com порту (RS 232C). Работаю в Builder и необходимо отправить на печать строку....

Rs 232, асинхронный режим
как открыть порт?как принимать и отсылать на порт?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru