Заголовок сообщения: Отправка и получение данных 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 метра на улице и метр в комнате. Обычный градусник, без всяких регуляторов. Хотя и к регулятору претензий небыло. Визуально искажений не замечено НИ РАЗУ! Да и отчего искажаться, то.))
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения