Предыдущая Следующая

switch(ledl_old_state)

{

case 0: {

A_LED1_0FF;. // погасить светодиод 1

A_LED2_0FF; // погасить светодиод 2

}

break; case 1: {

A_LED1_0N; // зажечь светодиод 1

A_LED2_0FF; // погасить светодиод 2

}

break; case 2: {

A_LED1_0FF; // погасить светодиод 1

A_LED2_0N; // зажечь светодиод 2

}

break; case 3: {

A_LED1_0N; // зажечь светодиод 1 A_LED2_0N; // зажечь светодиод 2 }

}

}

if (flagn_knl==l) // нажималась ли кнопка 1

{

flagn_knl=0; //да, сбросить флаг нажатия

switch(ledl_old_state) {

case 0: {

RTCset_hour(); //инкремент текущего значения часов }

break; case 1: {

RTCset_dom(); //инкремент текущего значения дней месяца }

}

}

if (flagn_kn2==l) // нажималась ли кнопка 2

{

flagn_kn2=0; //да, сбросить флаг нажатия

switch(ledl_old_state)

,;' {

• case 0: {

RTCset_min(); //инкремент текущего значения минут }

break; case 1: {

RTCset_month(); //инкремент текущего значения месяцев

}

}

}

if (flagn_kn3==l) // нажималась ли кнопка 3

{

flagn_kn3=0; //да, сбросить флаг нажатия

switch(ledl_old_state) {

case 0: {

RTCnull_sec(); //обнуление текущего значения секунд }

break; case 1: {

RTCset_year(); //инкремент текущего значения лет }

break; case 2: {

RTCset_dow(); //инкремент текущего значения дней недели }

}

}

} }

//------------------------------------------------------------------------

В основном цикле программа производит периодическое чтение и индикацию на ЖКИ значений текущего времени и даты с помощью функции RTCread_ind_date_time().

Кнопка «0» задает режим установки показаний. Текущий режим индицируется светодиодами «1» и «2». При наличии двух светодиодов, может быть задано четыре их состояния (режима установки). Текущий режим определяется в программе значением переменной ledl_old_state.

При негорящих светодиодах «1» и «2» (ledl_old_state=0), кнопки «1»...«3» имеют следующие функции: кнопка «1» — инкремент текущего значения часов (от 0 до 23 по кругу), кнопка «2» — инкремент текущего значения минут (от 0 до 59 по кругу), кнопка «3» — обнуление текущего значения секунд (для обеспечения точной установки времени).

При ledl_old_state=l (светодиод «1» горит, «2» — не горит), кнопки «1»...«3» имеют следующие функции: кнопка «1» — инкремент текущего значения дней месяца (от 1 до 31 по кругу), кнопка «2» — инкремент текущего значения месяцев (от 1 до 12 покругу), кнопка «3» — инкремент текущего значения лет (от 1990 до 2030 по кругу). Границы установки текущего значения лет заданы в функции RTCset_year() (файл rtc.c) и при желании могут быть изменены.

При ledl_old_state—2 (светодиод «1» не горит, «2» горит), кнопка «3» имеет функцию инкремента текущего значения дней недели (от 0 до 6 по кругу).


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz