Настройка часов и преобразование типов переменных

Lictor
Offline
Зарегистрирован: 01.10.2015

Доброго времени суток.

Никак не могу одолеть написание кода. Суть: при первом запуске устройства с помощью 2 энкодеров нужно настроить часы. Использую библиотеку часов, функции прерывания энкодера написал сам (чуть позже поставлю фильтр дребезга на инвертирующем триггере Шмитта). Проблема:

что-то постоянно сбрасывает значение nsos1 в ноль, а значение nsos2 почему-то не ограничивается условиями и может расти сколь угодно много.

Программа должна работать так (по моему мнению):

1. Если энкодер был перемещен, то взводится флаг и меняется значение переменной энкодера.

2. удаляется написанное ранее (печатается поверх черным цветом, т.к. значения еще не менялись, то будет полное совпадение).

3. В зависисмости от того какой параметр настраиваем выбирается ограничение для ввода. (сек не более 59, день недели не более 7 и т.п.)

4. В зависимости от переменной энкодера меняем значения переменных nsos1 и nsos2, отвечающих за вывод на экран.

 

Тут комментарий:

вывод на экран поддерживается только переменных типа char*, а ввод в строку настройки только int. Для разрешения проблемы были использованы функции atoi и itoa. 

5. Прописываем на экран новые значения. 

6. Еще не написано, но будет следующее:

при нажатой кнопке и если nsos1 = 7 ввод параметров настроек в часы, если nsos1 = 8, то a = 1, выход из цикла while и вообще из функции Time. Если другие значения, то ничего не происходит.

 

Буду весьма признателен за помощь.

Lictor
Offline
Зарегистрирован: 01.10.2015

ну и код тоже)

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

Это не код, это какой-то огрызок.

Начнем с первой строки: переменная а нигде не описана. Читателю, естественно, неизвестны ни ее тип, ни ее назначение.

Lictor
Offline
Зарегистрирован: 01.10.2015

Тему можно удалять,я открыл для себя объявление переменной со словом static.