попытка дебажить PPS/SQW.
работа на SWSerial (8,9) вывод в консоль Serial и на LCD
This commit is contained in:
135
2024-07-27 12:36:14 +03:00
parent 7cccb3306c
commit 3f97f3f02a
6 changed files with 118 additions and 139 deletions

View File

@@ -1,4 +1,6 @@
/**
* Serial_AdjustBaud
*
* Функция для вычисления и возврата скорости передачи данных (baud rate) на основе полученного входного пина.
*
* @param recpin входной пин для определения скорости передачи данных
@@ -6,13 +8,17 @@
* @return рассчитанная скорость передачи данных на основе измеренной ширины нулевого бита
*/
long detRate(int recpin){
long detRate(int recpin) {
long baud, x, rate = 10000;
pinMode(recpin, INPUT); // make sure serial in is a input pin
digitalWrite (recpin, HIGH); // pull up enabled just for noise protection
delay(100);
// Цикл для измерения ширины нулевого бита
for (int i = 0; i < 15; i++){
// Ожидание начала низкого бита
while(digitalRead(recpin) == 1)
while(digitalRead(recpin) == 1) {}
x = pulseIn(recpin, LOW); // Измерение ширины следующего нулевого бита
rate = x < rate ? x : rate; // Обновление минимальной ширины нулевого бита
}