Заголовок сообщения: Отправка и получение данных UART
Добавлено: Сб май 26, 2018 09:10:09
Встал на лапы
Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50 Сообщений: 149 Откуда: Питер
Рейтинг сообщения:0
Всем привет!
Я, пока что в Протеусе, запустил два контроллера и наладил связь между ними так, что при нажатии кнопки, подключенной к одному контроллеру, загорается светодиод, подключенный к другому контроллеру. Прикольно. Я решил пойти дальше и хочу научить загораться этот светодиод, если по нажатию все той же кнопки первый МК посылает во второй информацию об измеренной температуре термодатчиком. Отталкиваюсь от этой статьи.
Простое нажатие кнопки я передаю так:
Код:
int main(void) { DDRB = 0b00000001; PORTB = 0b00000001;
init_USART(); //инициализация USART в режиме 9600/8-N-1 while(1) { if (PINB==0b00000000) { send_UART('1'); } } }
И, соответственно, второй контроллер эту единичку у меня принимает. Тут, собственно, вопрос в чем? Термодатчик инициализируется и передает значения двух байтов:
Код:
Temp_L = read_18b20(); Temp_H = read_18b20();
Как мне передать их в UART? как в send_UART вставить значение read_18b20()?
Заголовок сообщения: Re: Отправка и получение данных UART
Добавлено: Сб май 26, 2018 10:07:25
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Вопрос не понятен, что значит как вставить ? Так прямо и вставляйте На сколько я понял, read_18b20 возвращает байт, send_UART принимает на входе тоже байт. В чём проблема ?
Вопрос не понятен, что значит как вставить ? Так прямо и вставляйте На сколько я понял, read_18b20 возвращает байт, send_UART принимает на входе тоже байт. В чём проблема ?
Так?
Код:
while(1) { if (PINB==0b00000000) { send_UART(read_18b20()); } }
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
датчик передает 9 байт, а не 2. и первые два из этих девяти на самом деле содержат значение кода температуры, но только при условии, что все девять дадут 0 при подсчете CRC по определенному алгоритму. поэтому вот так вот брать 2 байта и игнорировать остальные - верх безрассудства. как я говорил - так делать нельзя.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Ой, да ладно Вам. Какая там ещё недостоверность! Работает годами, как первый советский трактор. 3 метра на улице и метр в комнате. Обычный градусник, без всяких регуляторов. Хотя и к регулятору претензий небыло. Визуально искажений не замечено НИ РАЗУ! Да и отчего искажаться, то.))
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения