Таймер счетчик

Umbrasah
Offline
Зарегистрирован: 20.05.2017

Всем доброго времени суток.
Я начинающий в сфере ардуино, поэтому не лупите тапками, если что не так.
Возникла необходимость посчитать время длительности логической единицы/нуля на входном порте платы.

Немного подробнее: На вход подается логическая единица. Под действием некоторых внешних факторов единица может измениться на ноль на некоторое время - это время необходимо измерить с максимальной точностью и передать на компьютер. Проделывать это постоянно с максимально возможным быстродействием.

Дополнительно: Плата Arduino UNO R3 MEGA328P

Заранее очень благодарю, за помощь в написании скетча.

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014
Umbrasah
Offline
Зарегистрирован: 20.05.2017

Благодарю. Только возник ещё вопрос.
Пытаюсь передать на ПК с начала одну переменную, а затем через разделитель другую.

Serial.println(pinState, DEC); //Выводим на экране переменную pinState
Serial.print(";"); //Ставим разделитель ;
Serial.print(d, DEC); //Выводим на экране переменную d

Но в результате на экране выдает просто набор данных:

;364783
;348749
;345345

А нужно примерно следующего формата:

364556;364783343

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

println добавляет в конец символы перевода строки, print - не добавляет.

Umbrasah
Offline
Зарегистрирован: 20.05.2017

Да я в курсе. В результате считывания и всех программных мохинаций программа имеет на выходе две переменных с типом данных unsigned long (содержащих значение от 0 до 4294967295).
Каждый раз на экран должна выводиться строка, содержащая эти две переменные, разделенные символом ";".

bargundabal
Offline
Зарегистрирован: 08.06.2017
int pinState = 1, d = 0;
Serial.print(pinState, DEC); //Выводим на экране переменную pinState
Serial.print(";"); //Ставим разделитель ;
Serial.println(d, DEC); //Выводим на экране переменную d

1;0
7;9
13;18
175;197
 

Тебе описали те функции, которые ты используешь, но ты не понял и используешь неверно. Ты сначала наполняешь строку print'ами, а в последнем выводе для строки ты делаешь prinln, который допечатывает в строку то, что надо, и переносит каретку.

 

Umbrasah
Offline
Зарегистрирован: 20.05.2017

Прошу прощения. Тормозяню... А я уже было начал через sprintf писать. Всем большое спасибо.